C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: コントロールのループについて


(過去ログ 128 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■76169 / inTopicNo.1)  コントロールのループについて
  
□投稿者/ テンテン (53回)-(2015/06/05(Fri) 11:47:26)

分類:[.NET 全般] 

お世話になっております。
動作は問題ないのですがソースの記載内容を少なくし為、質問させて頂きます。

現在、FileUploadコントロールを5つ使用しファイルのアップロード処理を下記のコードで記載しております。

If FileUpload1.HasFile Then
'アップロード処理
FileUpload1.PostedFile.SaveAs("D:\test\" & FileUpload1.FileName)
End If

省略

If FileUpload5.HasFile Then
'アップロード処理
FileUpload5.PostedFile.SaveAs("D:\test\" & FileUpload5.FileName)
End If

上記のソースのアップロードをループ文で行いたいのですが可能でしょうか。
お手数お掛けしますがご教授下さい。
引用返信 編集キー/
■76170 / inTopicNo.2)  Re[1]: コントロールのループについて
□投稿者/ 魔界の仮面弁士 (376回)-(2015/06/05(Fri) 13:25:23)
No76169 (テンテン さん) に返信
> 上記のソースのアップロードをループ文で行いたいのですが可能でしょうか。
手元に環境が無いので、イメージコードになってしまいますが、
ループというなら、こんな感じでしょうか。

Dim foo() As FileUpload = {FileUpload1, FileUpload2, FileUpload3, …}
For Each f In foo
 If f.HasFile Then
  f.PostedFile.SaveAs(createSavePath(f.FileName))
 End If
Next

createSavePath の部分は自作関数です。
ユーザー側から指定された FileName そのままで保存するのではなく、
事前に検証や準備のための手順が必要では無いかな、ということで。
引用返信 編集キー/
■76171 / inTopicNo.3)  Re[1]: コントロールのループについて
□投稿者/ WebSurfer (592回)-(2015/06/05(Fri) 13:35:00)
No76169 (テンテン さん) に返信

質問する際は、一番最初に、何を作っているのか(コードを見ると ASP.NET Web Forms
アプリらしいとは想像できますが、ちゃんと書きましょう)、ご自分の環境(OS, .NET,
IIS, Visual Studio のバージョン、ブラウザを使っているなら何かなど)に関する情
報を最低書いていただけませんか?

> 上記のソースのアップロードをループ文で行いたいのですが可能でしょうか。

できないと思います。

複数のファイルを一回のポストで同時にアップロードしたいのですよね?

ASP.NET 4.5 以降では FileUpload コントロールに AllowMultiple, HasFiles, PostedFiles
プロパティなどが追加されています。なので、Web サーバーが ASP.NET 4.5 以降、ブラ
ウザが HTML5 をサポートしていれば FileUpload を使っての複数ファイルの同時アップ
ロードが可能です。

ASP.NET 4 以前なら Ajax Control Toolkit の AjaxFileUpload などが使えると思います。

引用返信 編集キー/
■76172 / inTopicNo.4)  Re[1]: コントロールのループについて
□投稿者/ WebSurfer (593回)-(2015/06/05(Fri) 13:58:54)
No76169 (テンテン さん) に返信

すみません「できないと思います。」と言ったのは勘違いでした。(ブラウ
ザと Web サーバーのやりとりをループで 5 回繰り返すのだと勘違いしてま
した)

すでに、FileUpload コントロールを 5 つ配置したページを作成してアップ
ロードはできているが、サーバー側のコードを見かけ短くするという目的の
ためだけにループで処理したいということですね?

それなら魔界の仮面弁士さんがかかれたような手段でできそうな気がします。
すでにいろいろやってみて期待通りの結果が得られなかったのだと思いますが、
そのあたりを書いていただけませんか。

もし ASP.NET 4.5 以上を使えるなら、上に紹介した方法も検討してはいかが
ですか?
引用返信 編集キー/
■76173 / inTopicNo.5)  Re[2]: コントロールのループについて
□投稿者/ テンテン (54回)-(2015/06/05(Fri) 14:25:58)
No76170 (魔界の仮面弁士 さん) に返信
> 手元に環境が無いので、イメージコードになってしまいますが、
> ループというなら、こんな感じでしょうか。
>
> Dim foo() As FileUpload = {FileUpload1, FileUpload2, FileUpload3, …}
> For Each f In foo
>  If f.HasFile Then
>   f.PostedFile.SaveAs(createSavePath(f.FileName))
>  End If
> Next
>
> createSavePath の部分は自作関数です。
> ユーザー側から指定された FileName そのままで保存するのではなく、
> 事前に検証や準備のための手順が必要では無いかな、ということで。
→無事にやりたいことが出来ました。
 ありがとうございます。
引用返信 編集キー/
■76174 / inTopicNo.6)  Re[2]: コントロールのループについて
□投稿者/ テンテン (55回)-(2015/06/05(Fri) 14:31:33)
No76171 (WebSurfer さん) に返信
> 質問する際は、一番最初に、何を作っているのか(コードを見ると ASP.NET Web Forms
> アプリらしいとは想像できますが、ちゃんと書きましょう)、ご自分の環境(OS, .NET,
> IIS, Visual Studio のバージョン、ブラウザを使っているなら何かなど)に関する情
> 報を最低書いていただけませんか?
→WebSurfer さん
 教えて頂きたかった内容がソースの簡略化だった為上記内容を省かせて頂きました。
 ご迷惑をお掛けして誠に申し訳ございませんでした。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -