2017-04-19 11 views
0

私は現在、私が持っているウェブサーバでは夢中になっています。私は見つけることができ、まだ成功していないすべてのスタックオーバーフローのページをたどってきました。サイズが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の
  • を再起動:私が試してみました何

  • ファイルが最大許容画像サイズを指定し、アップロード・スクリプトのビットを変更
  • あるルートWWW/HTMLフォルダに.htaccessの追加私は取得しています

    エラーは次のとおりです。

    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サーバでもそれを見つけることができませんでした。

    多くのありがとうございます。

  • +0

    ローカルサーバとメインの両方で 'getimagesize()'に関するエラーはありますか? 1 MBを超えるファイルをアップロードすると、何かが得られますか? –

    +0

    ファイルが1MBを超えるため、デフォルトの制限時間を超過している可能性があります。 'set_time_limit(0);で時間制限を無制限に設定してみてください。 –

    +0

    いいえ、私はメインサーバでしかエラーがありません。すべて私のラップトップで実行している私のWebサーバーで、私はメインサーバーにプッシュするときにそれを試してみると素晴らしい作品です。見てset_time_limit(0) - 私はPHPスクリプトに追加しましたが、成功しません。 –

    答えて

    0

    あなたは、私がini_set( "upload_max_filesizeで"、 "30M")を使用して)php.iniの

    IIのupload_max_filesizeの値を変更)など

    の下に二つの方法でアップロード制限を変更することができます。

    +0

    ini_set( "upload_max_filesize"、 "30M")をどこで設定しますか? ? –

    +0

    ああ、心配しないで、PHPファイルに追加しても役に立たない。それでも解決策は探している。 –

    関連する問題