0

私はupload.phpからのコードを持っています

$uploaddir = '../photo/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
{
    //...
}

ユーザーが画像をアップロードしなかった場合にデフォルトの画像がアップロードされる機能を追加するにはどうすればよいですか?

4

3 に答える 3

0

これは私の答えではありません。それはCodeAngryのコメントです:

各ユーザーにアップロードしないように、デフォルトの画像 URL を使用しないでください。したがって、ユーザーが画像を持っている場合は、それを表示します。彼がデフォルトのものだけを使用しない場合

ユーザーがアップロードすることを明示的に選択した画像のみを保存する方が効率的です。ユーザーがアップロードしていない場合は、表示する必要があるときに次のようにします。

PHP

//assumimg you stored the image with user_id as name
$path_to_image = "img/" . $user_id . ".jpg";
$image = (file_exists($path_to_image)) ? $path_to_image : $default_image_path;

HTML

<img src="<?=$image?>" alt="" />

さらに、ディスク容量を節約できます。

于 2013-07-06T00:32:16.060 に答える
0

$_FILES['userfile']['error'] === UPLOAD_ERR_OK
ではないかどうかを最初に確認してUPLOAD_ERR_OKから、何か問題が発生しました。
エラーのリストは次の場所にあります: file-upload.errors

例:

$uploaddir = '../photo/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK) {
  if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    /** do stuff **/
  }
} else {
  echo "An error occurred with your upload.<br>";

  switch($_FILES['userfile']['error']) { 
    case UPLOAD_ERR_INI_SIZE: 
      echo "The uploaded file exceeds the upload_max_filesize directive in php.ini"; 
      break; 
    case UPLOAD_ERR_FORM_SIZE: 
      echo "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form"; 
      break; 
    case UPLOAD_ERR_PARTIAL: 
      echo "The uploaded file was only partially uploaded"; 
      break; 
    case UPLOAD_ERR_NO_FILE: 
      echo "No file was uploaded"; 
      break; 
    case UPLOAD_ERR_NO_TMP_DIR: 
      echo "Missing a temporary folder"; 
      break; 
    case UPLOAD_ERR_CANT_WRITE: 
      echo "Failed to write file to disk"; 
      break; 
    case UPLOAD_ERR_EXTENSION: 
      echo "File upload stopped by extension"; 
      break; 
    default: 
      $message = "Unknown upload error"; 
      break; 
  }
}
于 2013-07-05T19:57:20.937 に答える
0

これも使用できます: (もちろん、php の場合は echo "" の下)

// Replace source with other image in case user didn't upload any photo
$('img').error(function(){
        $(this).attr('src', 'missing.png');
});

// Or, hide the 'broken image' 
$("img").error(function(){
        $(this).hide();
});
于 2015-07-28T15:23:29.610 に答える