0

你知道这里有什么问题吗?我什么也找不到。

这打印:

echo $_FILES["new_text_file"]["name"];

这也是:

echo $_FILES["new_text_file"]["tmp_name"];

php:
"; echo $_FILES["new_text_file"]["tmp_name"]; //上传文本文件到服务器

        if(move_uploaded_file($_FILES["new_text_file"]["tmp_name"]), $_FILES["new_text_file"]["name"]) 
        {
            //header('Location: ga-dev-exercise-pavan.php');
            echo 'worked';
        }else {
            echo 'did not work';
        }
}
?>

html:

    <form enctype="multipart/form-data" action="ga-dev-exercise-pavan.php" method="POST">
        Choose a text file you want to upload and search through: 
        <input type='file' name='new_text_file'>

        <input type="hidden" name="submit_yes_file" value="true" />
        <br /><br />
        <input type="submit" value="upload">
    </form>
4

3 回答 3

2

你应该指定一个目标路径

$target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']). 
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}

http://www.tizag.com/phpT/fileupload.php

编辑: 如评论中所述,括号放错了位置:

错误的 :

if(move_uploaded_file($_FILES["new_text_file"]["tmp_name"]), $_FILES["new_text_file"]["name"])

正确的

if(move_uploaded_file($_FILES["new_text_file"]["tmp_name"], $_FILES["new_text_file"]["name"]))

于 2012-11-02T18:28:10.077 回答
2

不会自动允许您将上传的文件移动到任何地方。您需要将其移动到您的 PHP 脚本有权写入的位置。

所以例如

$src = $_FILES["new_text_file"]["tmp_name"];
$dst = './tmp_dir/'.basename($_FILES["new_text_file"]["name"]);

if (move_uploaded_file($src, $dst))
{

保护您免受用户指定恶意文件路径的basename影响(对重复的文件名没有任何作用),它tmp_dir是您可以写入的目录。

使用$src$dst清除一些代码,并让我看到您的示例中有一个额外的括号......

于 2012-11-02T18:31:04.197 回答
1

括号去掉了。它应该是这样的:

if(move_uploaded_file($_FILES["new_text_file"]["tmp_name"], $_FILES["new_text_file"]["name"])) 
于 2012-11-02T20:10:39.380 回答