1

MVCではc#。asp.net。

私が持っている要件は、ユーザーがディレクトリを選択できることです。ディレクトリ内のファイルが「Anqu」で始まり、.pdfファイルである限り、それらのファイルをすべてサーバーにアップロードする必要があります。

フォルダチューザを実行する簡単な方法がないので、ユーザーにフォルダからファイルを選択させ、そこからディレクトリパスを取得し、そこから適切なすべてのファイルを取得できるようにすることを考えました。要求事項。

これは私が見つけた最良のアプローチです(気分が違う場合はコメントしてください)。

ユーザーがファイルを選択して送信を押すと、次のアクション結果に移動します。

     [HttpPost]
     public ActionResult FileUpload(HttpPostedFileBase file) 

     string dirName = new DirectoryInfo(file.FileName).Name; 

ディレクトリ情報を取得します。私はそれを得ることが不可能であることに気づいています。

これは私の見解がどのように見えるかです:

    @using (Html.BeginForm("FileUpload", "Plt", FormMethod.Post, new { enctype = "multipart/form-data" }))

    {          

       <input type="file" name="file" />
       <input type="submit" value="OK" />
    }
4

3 に答える 3

1

jsではそれを行うことはできません。ブラウザのJavascriptはローカルファイルシステムにアクセスできません。操作するファイルは、リクエストからのストリームです。サーバーからクライアントファイルシステムにアクセスすることはできません。それはhttpがどのように機能するかではありません。

優れたUIを提供し、複数のファイルのアップロードを可能にするアップローダーを確認する必要があります。

  • 私はこれが好きです:http : //www.plupload.com/それはSilverLightを含む複数のアップロードエンジンを持っているからです。
于 2013-01-30T16:33:56.983 に答える
1

クライアント側のファイルシステムを操作したりアクセスしたりすることはできません。許可されている場合、これは非常に危険であると想像できるからです。

Webサイトにアクセスすると、サーバーにアップロードすることを特に選択しなくても、すべてのプライベートファイルがサーバーにアップロードされることを想像してみてください。

そのため、ユーザーがサーバーにアップロードすることを選択したファイルのみをアップロードできます。最善の方法は、javascript / jqueryを使用するか、telerix mvcコントロールを使用して、複数のファイルを非同期でアップロードできるようにすることです。

于 2013-01-30T16:38:38.183 に答える
0

ユーザーに自分のコンピューターからサーバーにファイルをアップロードさせようとしているようです(一般的なケースです)。あなたが遭遇する最初の問題はそれです

string dirName = new DirectoryInfo(file.FileName).Name;

サーバーで実行されています。uploadifyのような複数のファイルアップローダーを使用し、ワイルドカードの選択をAnqu * .pdfに設定して、説明に一致するファイルのみが表示されるようにすることができます。

ASP.NetMVCの質問でアップロードする

于 2013-01-30T16:37:46.107 に答える