朱骆篪 发布于 2017-05-15 19:44

html页面代码

php代码

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"];

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

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

    首先

    <input type="file" class="testFile" name="testFile" multiple="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!

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

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

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

    2017-05-15 22:18 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
活跃用户
  • 1
    问道摩托
  • 2
    袁广龙976丶
  • 3
    逍遥子
  • 4
    亮仔
  • 5
    芙蓉花
  • 6
    作小die_syj
  • 7
    王丽珠景平怡伦_621
  • 8
    adfa3sd5f6a
  • 9
    欣欣大妮
  • 10
    sfasfs
PHP1.CN | 中国最专业的PHP中文社区 | json解析格式化 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有