ASP.NETではHTMLコントロールFileでマルチファイルアップロード
6911 ワード
asp.Netではサーバコントロールに慣れていると、逆にwebで最も一般的なgetとpostフォームの使い方を忘れてしまいます.
今回、プロジェクトで問題が発生しました.ユーザーはfileuploadコントロールを動的に追加してマルチファイルアップロードを実現する必要があります.
サーバ側コントロールfileuploadでは実現しにくい.
そこで1時間かけて復習し、正常なwebフォームを提出し、体験を記録しました.もちろん、達人は
直接無視します.ほほほ
1、ページPOSTとGETを取得する3つの方法.
Request.Form[name]POST受信方式
Request.QueryString[name]GET受信方式
Request["name"]POSTもGETも可能
ここで注意してください.ページがcheckboxグループであれば、valueがカンマで区切られたチェックボックスが受信されます.
2、ファイルのアップロード
ここでは、HTMLコントロールのファイルでアップロードするのが特別なので、私が作ったマルチファイルアップロードの例です.
まずJQUERYを導入
ページコード:(ここのformにはrunat=「server」はありません.enctype=「multipart/form-data」が必要です.)
楽屋csコードは以下の通りです:(ここではページのすべてのfileアップロードコントロールを巡り、ページにアップロードコントロールが1つしかない場合は、実際に使用できます.
)のように取得しました.
今回、プロジェクトで問題が発生しました.ユーザーはfileuploadコントロールを動的に追加してマルチファイルアップロードを実現する必要があります.
サーバ側コントロールfileuploadでは実現しにくい.
そこで1時間かけて復習し、正常なwebフォームを提出し、体験を記録しました.もちろん、達人は
直接無視します.ほほほ
1、ページPOSTとGETを取得する3つの方法.
Request.Form[name]POST受信方式
Request.QueryString[name]GET受信方式
Request["name"]POSTもGETも可能
ここで注意してください.ページがcheckboxグループであれば、valueがカンマで区切られたチェックボックスが受信されます.
2、ファイルのアップロード
ここでは、HTMLコントロールのファイルでアップロードするのが特別なので、私が作ったマルチファイルアップロードの例です.
まずJQUERYを導入
<script type="text/javascript">
function addFileControl() {
var fileControlString = '<input name="File1" type="file" /><br />';
$("#fileArea").append(fileControlString);
}
</script>
ページコード:(ここのformにはrunat=「server」はありません.enctype=「multipart/form-data」が必要です.)
<form id="formFileUpload" method="post" action="MiniFileUpload.aspx?type=upload" enctype="multipart/form-data">
<div id="fileArea">
<input name="File1" type="file" /><br />
</div>
<input type="button" value=" " id="btnAddUpload" onclick="addFileControl();" />
<input type="submit" value=" " />
</form>
楽屋csコードは以下の通りです:(ここではページのすべてのfileアップロードコントロールを巡り、ページにアップロードコントロールが1つしかない場合は、実際に使用できます.
HttpPostedFile f = Request.Files["name"];
)のように取得しました.
private void fileUploadEvent()
{
HttpFileCollection fileCollection = Request.Files;
int filesCount = fileCollection.Count;
for (int i = 0; i < filesCount; i++)
{
HttpPostedFile file = fileCollection[i];
if (!string.IsNullOrEmpty(file.FileName))
{
if (file.FileName.LastIndexOf("\\") != -1)
{
string fileName = file.FileName.Substring(file.FileName.LastIndexOf("\\") + 1);// file.FileName
if (fileName.LastIndexOf(".") != -1)
{
string fileNameExtend = fileName.Substring(fileName.LastIndexOf("."));
if (fileNameExtend == ".txt")
{
string savePath = AppDomain.CurrentDomain.BaseDirectory + "filesUpload\\" + fileName;
file.SaveAs(savePath);
}
}
Response.Write(fileName + "<br/>");
}
}
}
}