0

ブラウザからファイルをアップロードして URL フォルダにコピーしようとしています

Cシャープを使用。

(私はこのフォルダへのすべての権限を持っています)

ファイルをハードドライブにアップロードしても問題ありません

このような:

HttpPostedFileBase myfile;

var path = Path.Combine(Server.MapPath("~/txt"), fileName);

myfile.SaveAs(path);

このようなURLにアップロードしようとしましたが、例外が発生しています

HttpPostedFileBase myfile;

var path =VirtualPathUtility.ToAbsolute("http://localhost:8080/game/images/"+fileName);

myfile.SaveAs(path);

例外:

System.ArgumentException: The relative virtual path 'http:/localhost:8080/game/images/ a baby bottle. Jpg' is not allowed here.
    In - System.Web.VirtualPath.Create (String virtualPath, VirtualPathOptions 
4

2 に答える 2

2

ファイルをリモートの場所にアップロードすることはできません。これを機能させたい場合は、サーバーがファイルのアップロードを受け入れるのと同じ方法で、ファイルのアップロードを受け入れるようにリモート サーバーを変更し、WebClient. SaveAsこのメソッドはローカル パスを想定しているため、使用できません。

次のコントローラー アクションを使用できます。

[HttpPost]
public ActionResult Upload(HttpPostedFileBase myFile)
{
    if (myFile != null && myFile.ContentLength > 0) 
    {
        var fileName = Path.GetFileName(myFile.FileName);
        var path = Path.Combine(Server.MapPath("~/App_Data"), fileName);
        myFile.SaveAs(path);
    }    

    ...
}

およびファイル入力を含む対応するフォーム:

@using (Html.BeginForm("Upload", null, FormMethod.Post, new { enctype = "multipart/form-data" }))
{
    <input type="file" name="myFile" />
    <button type="submit">Click this to upload the file</button>
} 
于 2013-03-11T13:33:09.807 に答える
0

使用する必要がありますServer.MapPath("Path")

var path = Server.MapPath("~/images/") + fileName);
myfile.SaveAs(path);
于 2013-03-11T13:34:10.910 に答える