【发布时间】:2018-03-08 04:09:28
【问题描述】:
我需要从我的 Android 应用程序将每个请求上传多个文件到 apache 网络服务器。我在 Windows 10 计算机上并使用 XAMPP 设置网络服务器。
当我上传单个文件时,一切都按预期工作。 但是当发布多个失败时,它们会出现在 C:\xampp\tmp 文件夹中,但不会被移动。
这就是 $_FILES 数组的样子
<?php $_FILES = array (
'uploaded_file1' =>
array (
'name' => 'data1.csv',
'type' => 'text/csv',
'tmp_name' => 'C:\\xampp\\tmp\\phpA9A6.tmp',
'error' => 0,
'size' => 7991,
),
'uploaded_file2' =>
array (
'name' => 'data2.csv',
'type' => 'text/csv',
'tmp_name' => 'C:\\xampp\\tmp\\phpA9A7.tmp',
'error' => 0,
'size' => 24906727,
),
'uploaded_file3' =>
array (
'name' => 'data3.csv',
'type' => 'text/csv',
'tmp_name' => 'C:\\xampp\\tmp\\phpB244.tmp',
'error' => 0,
'size' => 12342379,
),
);
这是我试图移动它们的脚本
<?php
$move = "images/";
foreach ($_FILES['uploaded_file']['tmp_name'] as $key => $value)
{
$tmp_name = $_FILES['uploaded_file']['tmp_name'][$key];
$name = $move.basename($_FILES['uploaded_file']['name'][$key]);
move_uploaded_file($tmp_name, $name);
}
?>
我认为这与上传文件的名称有关,但是当我尝试将每个文件的名称设置为 upload_file 时,$_FILES 数组看起来像这样
<?php $_FILES = array (
'uploaded_file' =>
array (
'name' => 'data3.csv',
'type' => 'text/csv',
'tmp_name' => 'C:\\xampp\\tmp\\phpEF74.tmp',
'error' => 0,
'size' => 12342379,
),
);
我对 HTTP 和 PHP 并没有真正的经验,所以这可能是一个微不足道的问题,但即使有几个不同版本的 PHP 脚本,我也无法弄清楚这一点。非常感谢任何帮助。
编辑:目标目录 C:\xampp\htdocs\images 存在,我已经调整了最大上传和 POST 文件大小,但正如我所说,只有移动文件才是问题。
【问题讨论】:
标签: php android post okhttp okhttp3