0

マルチアップロード入力コントロールを使用していますが、サーバーサイドではありません。つまり、asp:タグ付きではなく純粋なHTMLです。

現在、問題はサーバー側にあり、アップロード後に入力コントロールがファイルを問題のこのコレクションに配置することを期待して、RequestオブジェクトのFilesコレクションにアクセスしようとしています。

いくつかのスクリプトをjavascriptにインポートして機能させることもできましたが、コードビハインドを実行するたびに、参照および選択されたファイルを含むRequest.Filesプロパティは常に空になります。私は何をすべきか?おっと!申し訳ありませんが、コードを表示しませんでした。

var x = this.Page.FindControl("FileUpload1");

            lbuploadmessage.Text = x.GetType().ToString();

          HttpFileCollection hfc = Request.Files; 
            List<L2SQLData.PatientFile> list = new List<L2SQLData.PatientFile>();
            for (int i = 0; i < hfc.Count; i++)
            {
                HttpPostedFile hpf = hfc[i];
                if (hpf.ContentLength > 0 && hpf.ContentLength < 1024000)
                {
                    string filename = Path.GetFileName(hpf.FileName);
                    string ext = Path.GetExtension(hpf.FileName);
                    var guidname = Guid.NewGuid().ToString();
                    //FileUpload1.SaveAs(Server.MapPath("~/Uploads/DocClerkings/") + guidname + ext);

                    hpf.SaveAs(Server.MapPath("~/Uploads/DocClerkings/") + guidname + ext );
                    lbuploadmessage.Text = "Upload status:" + hpf.FileName + " successfully uploaded!";

ご覧のとおり、コントロールに「FileUpload1」という名前を付けましたが、実行時(デバッグ)では、オブジェクトxはnullであり、参照されたファイルを含むはずのRequest.Filesコレクションも空です。マルチアップロードコントロールは次のようになります。

<input id = "FileUpload1" type="file" class="multi"/>

次のように2つのスクリプトを追加しました。

<script src="jquery-latest.js" type="text/javascript" language="javascript"></script>
<script src="jquery.MultiFile.js" type="text/javascript" language="javascript"></script>

それで、私は何を省略しましたか?

乾杯

4

2 に答える 2

1

それを機能させるには、それを変更する必要があります

<asp:FileUpload ID="FileUpload1" runat="server" class="multi" />

そのプラグインは目立たず、class="multi"何かを実行したいことを知っています...

それを機能させる方法の完全なウォークスルーについては、 http://www.dotnetcurry.com/ShowArticle.aspx?ID=317およびhttp://www.codeproject.com/KB/aspnet/multiple_file_upload.aspxを参照してください。

備考:このプラグインは何もアップロードしないため、使用法は機能していません。これは、クライアント側でいくつかの優れた追加機能を提供するための「唯一の」ものです-http://www.fyneworks.com/jquery/multiple-file-upload/#からタブ-アップロード

このプラグインはファイルをアップロードできますか?

いいえ、このjQueryプラグインはファイルをアップロードしません

于 2011-11-14T04:47:50.503 に答える
0

私はついにhttp://docs.jquery.com/Tutorials:Multiple_File_Upload_Magicで行方不明のリンクを見つけました

var fileMax = 3;

$("input[@type=file]").change(function(){
   doIt(this, fileMax);
 });

これらの行はすべてデザイナーのマークアップに含まれています。もちろん、サーバーコードは上記のYahiaのソリューションで詳述されているものと同じままです-私がそれを受け入れた理由:D。ここにあります-アップロードボタンにこれを配置します:

HttpFileCollection hfc = Request.Files; 
        List<L2SQLData.PatientFile> list = new List<L2SQLData.PatientFile>();
        for (int i = 0; i < hfc.Count; i++)
        {
            HttpPostedFile hpf = hfc[i];
            if (hpf.ContentLength > 0 && hpf.ContentLength < 1024000)
            {
                string filename = Path.GetFileName(hpf.FileName);
                string ext = Path.GetExtension(hpf.FileName);
                var guidname = Guid.NewGuid().ToString();


     hpf.SaveAs(Server.MapPath("~/Uploads/DocClerkings/") + guidname + ext );
     lbuploadmessage.Text = "Upload status:" + hpf.FileName + " successfully uploaded!";

Yahiaと皆さんの支援に感謝します。Stack Overfolowの皆さんは最高です!

于 2011-11-14T09:30:26.340 に答える