ホームページ  >  記事  >  バックエンド開発  >  PHPマルチファイルアップロードの実装

PHPマルチファイルアップロードの実装

WBOY
WBOYオリジナル
2016-07-25 08:44:23785ブラウズ
ファイルアップロード、PHP


フォーム内のファイルアップロードタグが配列形式で指定されていれば、複数のファイルを同時にアップロードできます。

例を見てみましょう:
----------------------------------------------- - -------------------
  1. gt;
  2. ファイルのアップロード: gt;
    ファイルのアップロード:
    ファイルをアップロード: ;/td>
  3. ファイルのアップロード:
  4. function Upload($file_error, $file_tmp_name, $file_name){
  5. $info = "";
  6. if($file_name == "")
  7. return $info;
  8. switch($file_error){
  9. case UPLOAD_ERR_INI_SIZE:
  10. $info = $file_name. ": ファイル サイズがサーバーの制限を超えています";
  11. Break;
  12. case UPLOAD_ERR_FORM_SIZE:
  13. $info = $file_name ":ファイル サイズがブラウザの制限を超えています";
  14. Break;
  15. case UPLOAD_ERR_PARTIAL:
  16. $info = $file_name. ": ファイルの一部のみがアップロードされました";
  17. Break;
  18. case UPLOAD_ERR_NO_FILE:
  19. $info = $file_name. ":なし ファイルがアップロードされました";
  20. ブレーク;
  21. case UPLOAD_ERR_NO_TMP_DIR:
  22. $info = $file_name. ": 一時フォルダーが見つかりません";
  23. ブレーク;
  24. case UPLOAD_ERR_CANT_WRITE:
  25. $info = $file_name. ": ファイルの書き込みに失敗しました" ;
  26. ブレーク;
  27. case UPLOAD_ERR_OK:
  28. $upload_dir = './'.iconv("UTF-8","gb2312",$file_name);
  29. if(file_exists($upload_dir)){
  30. $info = $file_name ":同じ名前のファイルはすでに存在します";
  31. }else{
  32. if(move_uploaded_file($file_tmp_name,$upload_dir)){
  33. $info = $file_name.": ファイルは正常にアップロードされました";
  34. }else{
  35. $info = $file_name. ": ファイルのアップロードに失敗しました";
  36. }
  37. }
  38. Break;
  39. }
  40. return $info;
  41. }
  42. if(isset($_POST['submit'])){
  43. $info = '';
  44. $count = count($_FILES['upload_file']['name']);
  45. for($i=0; $i<$count; ++$i){
  46. if($_FILES['upload_file'][ 'name' ][$i] == "")
  47. 続行;
  48. $info = Upload(
  49. $_FILES['upload_file']['error'][$i],
  50. $_FILES['upload_file'][' tmp_name'] [$i],
  51. $_FILES['upload_file']['name'][$i]
  52. );
  53. }
  54. echo $info;
  55. }
  56. ?>
コードをコピー

----------------------------------------------- - --------------------------------------
コードの実行結果は次のとおりです。


注:

1.
では、name="upload_file[]" は配列の形式で名前を付ける必要があります。そうしないと、「初期化されていない文字列オフセット: 0」というエラーが発生します。これは、配列のキー値が範囲外であることを意味します。
2. $_FILES['upload_file']['name'][$i] では、upload_file はフォーム内のアップロード ファイル マーカーの名前です。複数のファイルをアップロードする場合、配列 $_FILES の 3 次元の添字が自動的に追加されます。 0 から開始 順番に番号が付けられます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。