1、我使用vue-element的upload组件上传文件,后端是php接收文件。在电脑浏览器上是可以正常的获取,但是在手机微信浏览器环境下,后端获取到的$_FILES['name']是数字,并不是文件的原名称。而且header头的content-type为octet-stream
电脑上:
{"file":{"name":"223777351740402882.zip","type":"application\/zip","tmp_name":"\/tmp\/phpRpFMhW","error":0,"size":18920}}
微信端:
{"file":{"name":"931649","type":"application\/octet-stream","tmp_name":"\/tmp\/php93BlWy","error":0,"size":18920}}
html代码:
<el-upload class="upload-demo" action="__APP__/purchase1/uploadAnnex" :on-remove="handleRemove" multiple :data="{index: index}" :file-list="item.fileList" :on-success="annexSuccess" :before-upload="beforeUpload">
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
php代码
$result = array();
if($_FILES['file']['size'])
{
$newName = uniqid() . '.' . $this->getExtension($_FILES['file']['name']);
move_uploaded_file($_FILES['file']['tmp_name'], C('UPLOAD_DIR') . 'purchase/' . $newName);
if(file_exists(C('UPLOAD_DIR') . 'purchase/' . $name))
{
$result['status'] = 'success';
$result['index'] = $_REQUEST['index'];
$result['info'] = C('MY_DOMAIN') . C('UPLOAD_DIR') . 'purchase/' . $newName;
$result['name'] = $newName;
}
else
{
$result['status'] = 'error';
$result['info'] = '上传失败,请重试!';
}
}
else
{
$result['status'] = 'error';
$result['info'] = '上传失败,请重试!';
}
print_r(json_encode($result));