私は、ユーザーが画像をアップロードすることができます(数日前に完全に働いたと私もアップロードに関連する何かを変更していない)のサイトを持っているPHPのアップロード機能していない、エラーなし
ファイルの所有されますwww-dataに設定し、私も777の許可を得ようとしました。なぜならそれが動作していないはずはないからです。
のenctype /データなども、これはコードです
に設定されています
switch ($_FILES['upload']['error']) {
case UPLOAD_ERR_OK:
$msg="There is no error, the file uploaded with success.";
break;
case UPLOAD_ERR_INI_SIZE:
$msg="The uploaded file exceeds the upload_max_filesize directive in php.ini.";
break;
case UPLOAD_ERR_FORM_SIZE:
$msg="The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form.";
break;
case UPLOAD_ERR_PARTIAL:
$msg="The uploaded file was only partially uploaded.";
break;
case UPLOAD_ERR_NO_FILE:
$msg="No file was uploaded.";
break;
case UPLOAD_ERR_NO_TMP_DIR:
$msg="Missing a temporary folder. Introduced in PHP 5.0.3.";
break;
case UPLOAD_ERR_CANT_WRITE:
$msg="Failed to write file to disk. Introduced in PHP 5.1.0.";
break;
default:
$msg="unknown error with upload";
}
echo("<script>console.log('".$msg."'); </script>");
//process image
if($_FILES['upload']['tmp_name']!=null){
$imgPath="../assets/img/horses/horse".$id.".jpg";
if((bool)getimagesize($_FILES["upload"]["tmp_name"])){
$writeimage = fopen($imgPath, "w");
if(!move_uploaded_file($_FILES["upload"]["tmp_name"], $imgPath)){
echo("<script>console.log('couldn't move img');</script>");
} else{
echo("<script>console.log('image uploaded');</script>");
}
fclose($writeimage);
} else{
echo(" <div class='alert alert-warning' id='notSaved' style='margin-top:20px;'>
Fehler: Die Datei die hochgeladen werden soll, scheint kein Bild zu sein.
</div>");
}
}
出力は
は、「エラー、成功を収めてアップロードされたファイルはありません
画像をアップロードしました。」です。
ただし、ファイルはサーバー上で変更または表示されません。
また、$ writeimage = fopen($ imgPath、 "w")という行も削除できます。とfclose($ writeImage)、私はできませんか?
あなたのロジックが振り向く持っている: 'move_uploaded_file()' 'true'を返しますが、成功に。 – jeroen
あたりとして、あなたの場合は、なぜそれがメッセージ画像がちょうどそれらのメッセージと私の引用符で何が間違ってデバッグ –