MVC3 でサーバーにアップロードされているファイルのフル パスを取得する方法がないことを信じるのに苦労しています (これはセキュリティ上の理由であると読みました)。
回避策はありますか?ユーザーがファイルをアップロードし、画面上で編集してから、元の場所に保存する小さなアプリを作成しています。誰かがこれを行う良い方法を持っていますか? 以外のものを使用する必要がありHttpPostedFileBase
ますか?
MVC3 でサーバーにアップロードされているファイルのフル パスを取得する方法がないことを信じるのに苦労しています (これはセキュリティ上の理由であると読みました)。
回避策はありますか?ユーザーがファイルをアップロードし、画面上で編集してから、元の場所に保存する小さなアプリを作成しています。誰かがこれを行う良い方法を持っていますか? 以外のものを使用する必要がありHttpPostedFileBase
ますか?
ありえない。Web サーバーは、ユーザーの Web ブラウザが伝えようとしているファイルについてのみ知ることができ、現在のブラウザは、ファイルの内容に加えて元のファイル名のみを提供します。クライアント PC 上のファイルのパスがサーバーに送信されることはありません。また、セキュリティ対策として、クライアント側の Javascript でこの情報を取得することはできないようです。
さらに、Web サーバーは(再) ダウンロードされたファイルがユーザーの PC のどこに保存されるかを制御できないため、このパス情報を持っていてもほとんど役に立ちません。
不可能です。クライアント側でファイルを操作する方法がありません。まず、ファイルをサーバーにアップロードし、そこからアクションを実行して、クライアント マシンに再度保存する必要があります。
@using (Html.BeginForm("EditImage", "Home", FormMethod.Post, new { enctype = "multipart/form- data" }))
{
}
コントローラーでは、次のようなアクションメソッドを使用できます。
[HttpPost]
public ActionResult EditImage(AddNewProductModel model, HttpPostedFileBase file)
{
}
このソリューションがお役に立てば幸いです。