2016-05-07 37 views
1

私は画像をアップロードするためにアップロードフォームを使用します。 < 4メガバイトのような小さなイメージが動作します。 5.7MBのようなファイルサイズの画像をアップロードしても何もしません。ファイルをアップロードするだけではありません。私はたくさんの検索をしましたが、わかりませんでした。私はこの問題は、このコードで対処する必要があると思う:Verot class.upload.php大きなファイルをアップロード

case 'png': 
         if (!function_exists('imagecreatefrompng')) { 
          $this->processed = false; 
          $this->error = $this->translate('no_create_support', array('PNG')); 
         } else { 
          echo $this->file_src_pathname; 
          echo $this->log; 
          echo $this->error; 
          echo $image_src = @imagecreatefrompng($this->file_src_pathname); 
          if (!$image_src) { 
           $this->processed = false; 
           $this->error = $this->translate('create_error', array('PNG')); 
          } else { 
           $this->log .= '- source image is PNG<br />'; 
          } 
         } 
         break; 

@imagecreatefrompng(の$ this - > file_src_pathname)関数は、コードところ私のコードブレークのその部分です。私はそれをコメントアウトする以外は、そのコードの後に​​は何も出力しません。私は既にメモリ制限を256Mに変更し、ファイルを64Mにアップロードしました。ファイル名が設定されています。大きなファイルに対処する必要があるときに、なぜ私のコードが壊れるか分かりません。皆さんのアイデアはありますか?

ファイルアップロードページ上のコードは次のとおり

//フォーム処理

は( '../は/ class.upload.php' を含む)が挙げられます。

$files = array(); 
foreach ($_FILES['my_field'] as $k => $l) { 
    foreach ($l as $i => $v) { 
     if (!array_key_exists($i, $files)) 
      $files[$i] = array(); 
     $files[$i][$k] = $v; 
    } 
} 

foreach ($files as $file) { 
if(!empty($file)){ 

$handle = new Upload($file, 'nl_NL'); 

      if (!file_exists("../classified_images/$adid")) 
    mkdir("../classified_images/$adid", 0777); 

     $tag_code_p = generatePassword(25); 

     if ($handle->uploaded) { 
     $oriname = $handle->file_src_name; 
     $handle->mime_magic_check = true; 
     $handle->allowed = array('image/*'); 
     $handle->image_convert = 'jpg'; 
     $newname = $adid."_big_".$tag_code_p; 
     $handle->file_new_name_body = $newname; 
     $handle->image_resize   = true;   
     $handle->image_ratio_fill  = true; 
     $handle->image_y    = 600; 
     $handle->image_x    = 800; 
     $handle->image_background_color = '#FFFFFF'; 

//ここで、アップロードのプロセスを開始します。つまり、アップロードされたファイル //を一時的な場所から希望の場所にコピーする // // $ handle-> Process( '/ home/www/my_uploads /'); $ handle->プロセス( "../ classified_images /");

 // we check if everything went OK 
     if ($handle->processed) { 

     $handle->image_convert = 'jpg'; 
     $newnamesmall =$adid."_small_".$tag_code_p; 
     $handle->file_new_name_body = $newnamesmall; 
     $handle->image_resize   = true;   
     $handle->image_ratio_fill  = true; 
     $handle->image_y    = 94; 
     $handle->image_x    = 125; 
     $handle->image_background_color = '#FFFFFF'; 

     // now, we start the upload 'process'. That is, to copy the uploaded file 
     // from its temporary location to the wanted location 
     // It could be something like $handle->Process('/home/www/my_uploads/'); 
     $handle->Process("../classified_images/"); 

     $handle->clean(); 
       //inserten in database 
    $sql_foto_insert = "insert into photos 
       (adid, photosmall, photo) 
       values 
       ('$adid', '$newnamesmall.jpg','$newname.jpg')"; 
    $foto_result = mysql_query($sql_foto_insert); 

      // everything was fine ! 
      //$msg .= $oriname.' '.LANG_FOTOS_SAVED.'<br />'; 
      $allok = 1; 

     } else { 
      // one error occured 
      $msg .= $handle->error . '<br />'; 
     } 

    } 
+0

などがあります。自分のマシンでシステムファイルを変更した場合は、後ですべてのサービスを再起動しましたか?または、イメージをBLOBとして保存しようとしている場合、MEDIUMBLOBまたはLONG​​BLOBを試してみると小さすぎるかもしれません。 http://php.net/manual/en/function.error-reporting.phpとhttp://php.net/manual/en/function.mysql-error.php –

答えて

1

これは設定上の問題が原因です。これはファイル>一定のサイズで起こるので、php iniの設定に関連すると思います。

あなたのphpの設定でupload_max_filesizepost_max_sizeをチェックしてください。これらは4MBに設定することができます。これらの値を増やして動作させることができます。

あなたはPHPのiniファイルを編集することはできません共有ホスティング環境にある場合、あなたはそのよう.htaccessファイルに追加することができます。

php_value upload_max_filesize 7M 
php_value post_max_size 7M 

また、あなたは何のエラー見るためにあなたの関数から@を削除する必要がありますです。 @を追加してエラーを抑制することは、開発/デバッグ中には悪い考えです。

また、ローカルマシンまたは独自のdevサーバーにいる場合は、apache error_logを開き、最後の数行を調べて、エラーの内容を確認します。サードパーティのサーバ上にいる場合、ほとんどのコントロールパネルはエラーログを表示するためのインターフェイスを提供します。

+0

OPの状態を使用して何かが来るかどうか確認してください:* 「私はすでにメモリ制限を256Mに変更し、ファイルを64Mにアップロードしました」* –

+0

@ Fred-ii- 'post_max_size'はまだ関連性があります – raidenace

関連する問題