-3

次のコードで画像をアップロードしようとしています。私のif条件は以下に示すように実行されていますが、画像は私が指定した指定されたパスに移動していません。私のコードは以下です。ここに私のhtmlコードがあります

<form enctype="multipart/form-data" action="catcher.php" method="POST">
Send this file: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>

ここに私のphpコードがあります

<?php
$uploaddir = '/xampp/project/';
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir)) {
    echo "File is valid, and was successfully uploaded.\n";
} else {
    echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

?>

私のコードのどこが間違っているのか誰でも指摘できますか?アップロードしようとしている画像が指定されたパスに移動しない理由を意味します,,

4

2 に答える 2

2

move_uploaded_file()2 番目のパラメータは、ディレクトリではなく宛先ファイルである必要があります。

あなたがすることができます:

$filename = $uploaddir . basename($_FILES['userfile']['tmp_name']);

if( move_uploaded_file($_FILES['userfile']['tmp_name'], $filename)){
// ...

ただし、複数のユーザーが同じ名前のファイルをアップロードしようとする可能性は十分にあるため、この可能性に対処することを強くお勧めします。

于 2013-04-23T08:28:55.213 に答える
0
 $folder =  "../images/stories/";
$result =   move_uploaded_file($_FILES['excel']['tmp_name'], $folder.$filename);

宛先フォルダー名を指定します。(上記のコードでは、$folder は宛先パス変数です) この関数の詳細を確認できます。

function upload($name,$tmp_name){   

$fileextarr=explode('.',$name);
$fileextarr[0];
$fileext=$fileextarr[count($fileextarr)-1];
$fpath = "../images/stories/lab_excel/";
$filename = ereg_replace(" ","_",$fileextarr[0]).'.'.$fileext;


//You can use restriction on file extensions also. (not necessary)

if($fileext=="xls" || $fileext=="xlsx" || $fileext=="doc"|| $fileext=="docx" || $fileext=="jpeg" || $fileext=="png" || $fileext=="gif" || $fileext=="tiff" || $fileext=="bmp" || $fileext=="jpg")
{
    $uploadedfile = $filename;

}

//Here is the use of destination path:



 $folder =  "../images/stories/lab_excel/";
$result =   move_uploaded_file($_FILES['excel']['tmp_name'], $folder.$filename);

/*echo $folder.$_FILES['excel']['name'];
die();*/

if($result){
$msg="File Uploaded Successfully";
    return $folder.$filename;
}
else
{
    return false;
}

}

于 2013-04-23T08:38:38.070 に答える