在Windows 7 64位上使用Xampp,使用多部分上传器。
正常上传(通过http post工作正常),但是使用multipart up文件所在的tmp文件夹是空的,所以调用移动它会失败,如:
无法将'E:\ xampp \ tmp \ php719B.tmp'移至'uploads / Recording-1'
代码上传确实可以在其他地方使用。
E:\ xampp \ tmp \为空,在xampp中搜索tmp文件时不会显示任何结果。
每个phpinfo()
加载配置文件E:\ xampp \ php \ php.ini
根据php.ini,E:\ xampp \ tmp \是正确的tmp文件夹并启用了上传。
;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;
; Whether to allow HTTP file uploads.
file_uploads = On
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "E:\xampp\tmp"
; Maximum allowed size for uploaded files.
upload_max_filesize = 128M
文件较小,因此低于128M。
我对自己做错了什么感到茫然,为什么XAMPP正在丢失文件上传,或者如果它们没有丢失就把它们放在哪里。
更新:固定。
在这种情况下,脚本的目标上传文件夹需要完全限定(“E:/ xampp / php / tmp / uploads /”),而不是相对pathed :(“uploads”),我猜那个临时实际上只意味着请求的长度,因此为什么他们之后没有出现,因为他们被立即清理出来。
这是工作代码:
$toBasePath = "E:/xampp/php/tmp/uploads/";
$file=$_FILES['Filedata'];
$len = count($file['name']);
echo("multipart found ".$len);
for($k=0;$k<$len;$k++){
$target_path = $toBasePath .basename( $file['name'][$k]);
if(move_uploaded_file($file['tmp_name'][$k], $target_path))