2016-08-12 4 views
0

私のウェブサイトでは、サーバーにPHPを使用して画像をアップロードします。しかし、このことは小さいサイズの画像ではうまく動作しますが、大きなサイズの画像ではうまく動作しません。モバイルのクリックした画像のみをアップロードしたいここでは、ここで画像大きなサイズの画像がPHPを使用してサーバーにアップロードされていません

<form action="newupload.php" enctype="multipart/form-data" method="post"> 
    <div class="form-group"> 
     <div id="image-cropper"> 
      <input type="file" name="user_image" class="cropit-image-input" style="font-weight: bold;" /> 
     </div> 
    </div> 
    <div class="form-group"> 
     <input type="text" name="title" class="input-round big-input" id="title-modal" placeholder="Enter your Image Title" required/> 
    </div> 
    <div class="form-group"> 
     <!-- required --> 
     <span class="required margin-three">*Please complete all fields correctly</span> 
     <!-- end required --> 
     <p class="text-center"> 
      <button class="btn btn-black no-margin-bottom btn-medium btn-round no-margin-top" type="submit" id="submitbtn">Submit</button> 
     </p> 
    </div> 
</form> 

をアップロードするために私のフォームは、アップロードのための私のPHPスクリプトです:

upload_max_filesize 20M 
post_max_size 40M 
max_input_time 180 
max_execution_time 60 
memory_limit 48M 
+0

http://php.net/manual/en/features.file-upload.errors.php --- http://php.net/manual/en/function.error-reporting.phpにアクセスして使用してください。 'phpinfo()'でシステム情報を表示します。 –

+0

このリンクを使用:-https://www.sitepoint.com/upload-large-files-in-php/。それらのコードをPHPファイルに追加してチェックしてください –

+0

アップロード中にネットワーク/コンソールタブのブラウザにエラーが表示されますか(F12経由)サーバー上のApacheまたはPHPログにエラーが表示されますか? PHP.iniで定義されているエラーレベルは何ですか? – Cagy79

答えて

0

手順:

$errors = 0; 

error_reporting(E_ALL); 
require_once 'mysqli_connect.php'; 
session_start(); 

$email = $_SESSION['user_email']; 
$q = "select * from user where u_email='$email'"; 
$qres=mysqli_query($dbc,$q); 
$qrow=mysqli_fetch_array($qres,MYSQLI_ASSOC); 
$u_id=$qrow['u_id']; 

if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    if (!empty($_FILES['user_image']['name']) && !empty($_POST['title'])) { 
     $image = $_FILES['user_image']['name']; 
     $uploadedfile = $_FILES['user_image']['tmp_name']; 
     $image_title = $_POST['title']; 
     $t = uniqid(); 
     $filenamee = 'user-'.$t; 
     $path = 'uploaded/'; 
     $filename = $path.$filenamee.".jpg"; 

     if (move_uploaded_file($_FILES['user_image']['tmp_name'], $filename)) { 
      $query = "insert into selfiepost (u_id,s_title,s_upload,upload_time) v  values ('$u_id','$image_title','$filename',now())"; 
      $res = mysqli_query($dbc, $query); 
      if ($res) { 
       header('Location:home.php?insert=1'); 
      } else{ 
       header('Location:home.php?insert=0'); 
      } 
     } else { 
      echo "Sorry, File not uploaded successfully. Please try again!!"; 
     } 
    } else { 
     echo "Files should not be empty!!"; 
    } 
} 

php.iniファイルには、これらの5つのものが含まれています

  1. PHPがeを返すかどうかを確認するrror
  2. このアプリケーションの独自の最大サイズを定義します。
  3. 実際の最大アップロードサイズを取得します(独自の最大サイズと サーバー設定に基づいています)。
  4. チェックファイルサイズが制限

function convertToBytes($value) { 
    if (is_numeric($value)) { 
    return $value; 
    } else { 
    $value_length = strlen(trim($value)); 
    $bytes = substr($value, 0, $value_length - 1); 
    $unit = strtolower(substr($value, $value_length - 1)); 
    switch($unit) { 
     case 'g': 
     $bytes *= 1024; 
     case 'm': 
     $bytes *= 1024; 
     case 'k': 
     $bytes *= 1024; 
    } 
    return $bytes;    
    } 
} 

function getFileUploadMaxSize($app_config_max_size) { 
    return min(min(convertToBytes(ini_get('post_max_size')), convertToBytes(ini_get('upload_max_filesize'))), $app_config_max_size); 
} 


try { 
    if ($_FILES['user_image']['error'] != UPLOAD_ERR_OK) { // (step 1) 
     throw new Exception(_FILES['user_image']['error']); 
    } 
    $app_config_max_size = 10485760; // 10MB (step 2) 
    $max_size = getFileUploadMaxSize($app_config_max_size); // (step 3) 
    if ($_FILES['user_image']['size'] > $max_size) { // (step 4) 
     throw new Exception('limit exceeded'); 
    } 

    ... rest of your upload code ... 

} catch (Exception $e) { 
    echo $e->getMessage(); 
} 
0

を超えた場合、エラーがupload_max_filesizeでは、今、私は自分のコメントをすべてに64M おかげでそれを変更2Mに設定したためです!

関連する問題