私は現在、私が持っているウェブサーバでは夢中になっています。私は見つけることができ、まだ成功していないすべてのスタックオーバーフローのページをたどってきました。サイズが1MBを超えるファイルはアップロードできません - PHPウェブサーバ
私はウェブサーバーをローカルで実行していますが、最初にこれらの設定をテストすると、すべてが機能しますが、メインサーバーに同じ設定を適用するとそのような運がありません。
単純なhtmlページとPHPページを使用してリクエストを処理するだけで、基本的なことに戻りましたが、これはまだ1MBを超えるものでは失敗します。
参考のために、これは私のHTMLスクリプトです:
<!DOCTYPE html>
<html>
<body>
<form action="test.php" method="post" enctype="multipart/form-data">
Select image to upload:
<input type="file" name="fileToUpload" id="fileToUpload">
<input type="submit" value="Upload Image" name="submit">
</form>
</body>
</html>
これは、要求を処理するために、私test.phpをページです:
<?php
$target_dir = "";
$target_file = $target_dir . basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// Check file size
if ($_FILES["fileToUpload"]["size"] > 8000000) { //8mb
echo "Sorry, your file is too large.";
$uploadOk = 0;
}
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg"
&& $imageFileType != "gif") {
echo "Sorry, only JPG, JPEG, PNG & GIF files are allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]["tmp_name"], $target_file)) {
echo "The file ". basename($_FILES["fileToUpload"]["name"]). " has been uploaded.";
} else {
echo "Sorry, there was an error uploading your file.";
}
}
?>
これはW3からちょうど基本的なPHPの画像アップロードスクリプトです学校 - それはこの問題が私を減らしたものです!
- をphp.iniファイルを編集し、それはフォームのヘッダー 内のenctype = "multipart/form-data" を含むようにHTMLフォームを変更するapacheの
- を再起動:私が試してみました何
エラーは次のとおりです。
Warning: getimagesize(): Filename cannot be empty in /var/www/html/test.php on line 8
File is not an image.Sorry, your file was not uploaded.
誰も私を助けることはできますか?私はmod_securityを無効にすることも検討しようとしましたが、私のapache2サーバでもそれを見つけることができませんでした。
多くのありがとうございます。
ローカルサーバとメインの両方で 'getimagesize()'に関するエラーはありますか? 1 MBを超えるファイルをアップロードすると、何かが得られますか? –
ファイルが1MBを超えるため、デフォルトの制限時間を超過している可能性があります。 'set_time_limit(0);で時間制限を無制限に設定してみてください。 –
いいえ、私はメインサーバでしかエラーがありません。すべて私のラップトップで実行している私のWebサーバーで、私はメインサーバーにプッシュするときにそれを試してみると素晴らしい作品です。見てset_time_limit(0) - 私はPHPスクリプトに追加しましたが、成功しません。 –