找不到表单上传的文件

时间:2014-11-11 08:10:54

标签: php file-upload windows-7 cygwin

问题已解决,请参见底部

根据标题,我找不到通过表单上传的任何文件。一点背景,这是我的文件和输出:

test.php的

<form action="readfile.php" method="post" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <input type="file" name="userfile" />
    <input type="submit"/>

</form>

readfile.php

<?php

echo "upload_tmp_dir=".ini_get("upload_tmp_dir")."\n";

var_dump($_FILES);

?>

readfile.php输出

ini_set= upload_tmp_dir= 
array(1) {   ["userfile"]=>   array(5) {
    ["name"]=>
    string(18) "flashcardinput.txt"
    ["type"]=>
    string(10) "text/plain"
    ["tmp_name"]=>
    string(14) "/tmp/phpau1N3q"
    ["error"]=>
    int(0)
    ["size"]=>
    int(106)   } }

我在Windows 7上使用cygwin,在/ tmp或C:\ Windows \ Temp中找不到phpau1N3q。如您所见,PHP设置upload_tmp_dir未定义,但使用ini_set("upload_tmp_dir","/somedir")似乎没有效果。

以前有人遇到过这个问题吗? 谢谢!

修改 我不知道在脚本结束时会自动删除该文件。 添加

if(!move_uploaded_file($_FILES["userfile"]["tmp_name"], "/uploads/upload.txt")){
    echo "MOVE FAILED\n";
}

将其保存在/uploads/upload.txt

1 个答案:

答案 0 :(得分:1)

我认为您应该将上传的文件移动到新目录或数据库。

use move-uploaded-file function