Heim > Backend-Entwicklung > PHP-Tutorial > javascript - php做了个from表单视频上传功能,在pc测试成功,在ios和Android均失败

javascript - php做了个from表单视频上传功能,在pc测试成功,在ios和Android均失败

WBOY
Freigeben: 2016-06-06 20:38:21
Original
1155 Leute haben es durchsucht

html页面代码

<code><form action="index.php" method="post" enctype="multipart/form-data">
    <input type="file" class="testFile" name="testFile" multiple>
    <input type="submit">
</form>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

php代码

<code>print_r($_FILES);
//Android时,这里输出为空,但是上传文件的临时文件夹是看到有文件生成的。
//ios时,这里输出的是正常的(与pc时一致,error代码也是0),但是在服务端视频文件的大小为0k,并且服务端打开视频说这是一个空白/缺损视频
$file=$_FILES['testFile'];
move_uploaded_file($file["tmp_name"],"upload/" .$file["name"]);
echo "保存成功: " . "upload/" . $file["name"];
</code>
Nach dem Login kopieren
Nach dem Login kopieren

请问有办法解决这个问题吗?这个只在手机上用,所以可以使用html5等手机web支持的各种技术

回复内容:

html页面代码

<code><form action="index.php" method="post" enctype="multipart/form-data">
    <input type="file" class="testFile" name="testFile" multiple>
    <input type="submit">
</form>
</code>
Nach dem Login kopieren
Nach dem Login kopieren

php代码

<code>print_r($_FILES);
//Android时,这里输出为空,但是上传文件的临时文件夹是看到有文件生成的。
//ios时,这里输出的是正常的(与pc时一致,error代码也是0),但是在服务端视频文件的大小为0k,并且服务端打开视频说这是一个空白/缺损视频
$file=$_FILES['testFile'];
move_uploaded_file($file["tmp_name"],"upload/" .$file["name"]);
echo "保存成功: " . "upload/" . $file["name"];
</code>
Nach dem Login kopieren
Nach dem Login kopieren

请问有办法解决这个问题吗?这个只在手机上用,所以可以使用html5等手机web支持的各种技术

截至现在,ios的视频上传搞定了,但是一次只能选一个视频(也许可以做多个fileInput让用户多选几次来做到上传多个视频,但是哪个需求那么变态!)

首先

<input type="file" class="testFile" name="testFile" multiple>需要把multiple="multiple"去掉,因为ios选择单文件时,如果这个是视频文件,会自动压缩视频(压缩过程是在视频选取界面,不需要我们做任何事情的),但是如果是多选文件,则不会自动压缩,导致上传到服务端的视频总是0k,并且无报错。

然后

如果服务端是php,则需要按照http://www.admin10000.com/Document/69.html配置php.ini文件,至于php.ini文件哪里找,如果你的是wamp,则在wamp文件夹那里搜索php.ini,结果会有两个,应该是apache下面的,如果改了还不行,就另外一个也改了。

依然存在的问题

Android还是一样的问题,不报错,有上传动作(在上传文件夹里能看到有临时文件生成)但是此动作完了之后没看到有上传文件,并且print_r($_FILES);的结果为Array()空数组...

但是看到ios压缩视频后上传成功了,也许突破点就是压缩视频,我现在找找看js压缩视频的方法

2015年2月4日10:49:28 更新

发现小米1s(前年学生狗,穷,买的,现在放在公司当测试机)居然可以成功上传!!!我再试试别的Android

亲们,我错了,问题都解决了

原来主要问题是php.ini的设置!我有个测试机用的视频是83M的,但是php.ini设置最大上传文件是80M,所以才会失败!现在ios和我手上的Android都成功了,而且,不不建议是多选文件的input file!

使用微信的浏览器执行上传文件可能会有写莫名其妙的问题,这个问题我之前开发微信第三方应用的时候也遇到过。归根结底还是微信做了特殊处理与限制造成的。

建议你使用手机系统浏览器进行测试,若正常,则说明你的代码是ok的,建议已系统浏览器的表现为准。

ps:微信已经推出了js-sdk,包含文件上传,建议你有必要的情况下可以看下 微信开放JS-SDK,助力网页开发和 微信JS-SDK示例页面。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage