マルチアップロード入力コントロールを使用していますが、サーバーサイドではありません。つまり、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>
それで、私は何を省略しましたか?
乾杯