0

私はphp mysql.HereでWebアプリケーションに取り組んでいます。要件は、ユーザーが一度に複数のファイルをアップロードしてサーバーに保存できる必要があることです。現在、これを使用して単一のファイルをアップロードできます。

 $(function(){
var btnUpload=$("#uploadPdf");
new AjaxUpload(btnUpload, {
    action:"uploadPdf.php",
    name: "uploadCertPdf",
    onSubmit: function(file, ext){
         if (!(ext && /^(pdf)$/.test(ext))){ 
            alert("Upload File (Supports PDF formats only)");
            return false;
        }           
        var stats = $("#resultsOuter");
        stats.html('<img src="images/layout/preloader-2.png" />');
    },
    onComplete: function(file, response){
            alert(response);
            alert("File uploaded successfully");
            window.location="somePage.php";

    }
  })
  });        

 /**somePage.php file**/

  if (isset($_FILES["uploadCertPdf"]))
  {
  if ($_FILES["uploadCertPdf"]["error"] > 0)
  {
      echo "Error: " . $_FILES["uploadCertPdf"]["error"] . "<br />";
  }
else
  {
       if(!is_dir($_SERVER['DOCUMENT_ROOT']."admin/pdf/"))
     {  echo "not found";
        mkdir($_SERVER['DOCUMENT_ROOT']."admin/pdf/", 0777,true);
     } 
         if(file_exists($file))
        {   echo "duplicate";
            $flag = TRUE;
        }
        else
        { 
            $uploaddir = '/admin/pdf/';
            $uploadfile = $uploaddir . basename($_FILES['uploadCertPdf']['name']);
            $path_info = pathinfo($_FILES['uploadCertPdf']['name']);
            $type= $path_info['extension']; 
            if($type == 'pdf')
            {   

                $flag = move_uploaded_file($_FILES['uploadCertPdf']['tmp_name'],$uploadfile);

            }else{
                echo "You can upload only PDF files";
                }
        }

      }
   }

一度に複数のファイルをアップロードするようにカスタマイズするにはどうすればよいですか?検索しようとしましたが、すべてのプラグインは何らかのユーザー インターフェイスを使用するようにカスタマイズされています。つまり、独自の独立したモジュールと機能があります。
そのため、これに関するヘルプをいただければ幸いです。お時間をいただきありがとうございます。 編集:ファイル入力を動的に作成する ajax アップローダー関数を追加しています。

    /**
 * Creates invisible file input above the button 
 **/
_createInput : function(){
    var self = this;
    var input = d.createElement("input");
    input.setAttribute('type', 'file');
    input.setAttribute('name', this._settings.name);
    input.setAttribute('id', 'file'+this._settings.name);
    var styles = {
        'position' : 'absolute'
        ,'margin': '-5px 0 0 -175px'
        ,'padding': 0
        ,'width': '220px'
        ,'height': '30px'
        ,'fontSize': '14px'                             
        ,'opacity': 0
        ,'cursor': 'pointer'
        ,'display' : 'none'
        ,'zIndex' :  2147483583 //Max zIndex supported by Opera 9.0-9.2x 2147483583 
        // Strange, I expected 2147483647   
    };

name 属性に配列を追加してみましたが、うまくいきませんでした。

4

2 に答える 2

1

一度に複数のファイルをアップロードするには、http: //blueimp.github.com/jQuery-File-Upload/ で入手できる Jquery プラグインを使用できます。

于 2012-10-25T06:40:52.100 に答える
1

この記事 (PHP ベース) をガイドとして使用して、Grails プロジェクトで複数ファイルのアップロード機能を完成させました。自分で巻きたい場合は、参考にしてください。

http://net.tutsplus.com/tutorials/javascript-ajax/uploading-files-with-ajax/

于 2012-10-25T07:24:42.987 に答える