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

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

WBOY
Release: 2016-06-06 20:38:21
Original
1149 people have browsed it

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>
Copy after login
Copy after login

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>
Copy after login
Copy after login

请问有办法解决这个问题吗?这个只在手机上用,所以可以使用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>
Copy after login
Copy after login

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>
Copy after login
Copy after login

请问有办法解决这个问题吗?这个只在手机上用,所以可以使用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示例页面。

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template