1

私はこのコードを持っています:

[HttpPost]
    public ActionResult Edit(Photograph photo, HttpPostedFileBase image)
    {

        if (ModelState.IsValid)
        {
            if (image != null)
            {
                byte[] imageData = new byte[image.ContentLength];
                image.InputStream.Read(imageData, 0, image.ContentLength);
                System.IO.File.WriteAllBytes(HttpContext.Server.MapPath("~/Content/Images"), imageData);
            }

            repository.SavePhotograph(photo);
            TempData["message"] = string.Format("{0} has been saved", photo.Name);
            return RedirectToAction("Index");
        }
        else
        {
            return View(photo);
        }
    }

フォームからアップロードされた写真を取得し、サーバー (ローカル サーバー) に保存するためのものです。すべてのプロジェクトが NETWORK SERVICE ユーザー権限と IIS_IUSRS グループ権限を保持するフォルダー「Visual Studio 2010」を指定しました。管理者としてVisual Studioも実行しています。

何らかの理由で、ファイルをその場所に保存できません。場所は、{Project_Name\Content\Images} の下のプロジェクト フォルダー内です。そこにファイルを保存するにはどうすればよいですか?

ありがとう、

4

3 に答える 3

1

そのエラーが発生した理由は、メソッドが次のとおりであるためです。

System.IO.File.WriteAllBytes()

ファイルのパスとデータを取ります。

フォルダを渡していました

System.IO.File.WriteAllBytes(HttpContext.Server.MapPath("~/Content/Images"), imageData);

私はファイルを渡す必要がありました:

System.IO.File.WriteAllBytes(String.Format("{0}{1}", HttpContext.Server.MapPath("~/Content/Images"), image.FileName), imageData);

今、リポジトリでエラーが発生しているので、それを調べています:)コーディングが大好きです.... ;)

于 2012-11-02T18:57:33.820 に答える
0

RE:「System.IO.File.WriteAllBytes」の行...ディレクトリに保存しようとしていますか?アップロードされたファイルのファイル名はどこで選択されましたか?

于 2012-11-02T13:41:22.030 に答える
0

何らかの理由で、ファイルをその場所に保存できません。

エラーが発生していますか? はいの場合は、ここに完全なエラーを投稿してください。

ケース I : Visual Studio を使用して MVC アプリを実行している場合は、必ず [管理者として実行] オプションを使用して Visual Studio を実行してください。

ケース II: IIS で MVC アプリを実行している場合。画像が保存されているフォルダーに移動します。つまり、「IIS_IUSRS」ユーザーにフル コントロールの「変更」権限を付与します。

于 2012-11-02T13:33:09.067 に答える