1

MVC 4、C# 4、および ajax を使用して、ファイル入力を含むフォームを投稿しています。ファイルがサーバーに書き込まれていることを除いて、すべて正常に動作していますが、ページを手動で更新するまでロックされているようです。つまり、何かがロックしているように見えます。つまり、書き込み中に何かを閉じませんでしたか?

コントローラーで、ファイル InputStream をキャプチャし、それをサービス レイヤーに渡します。

コントローラ キャプチャ コード:

if (Request.Files.Count > 0)
            {
                file = Request.Files[0]; //Uploaded file
                fileName = file.FileName;
                mimeType = file.ContentType;
                fileContent = file.InputStream;
            }

fileStream が Stream 型であり、コントローラーの file.InputStream から渡されたサービス層コード。

//Write file to disk path
                fileStream.CopyTo(File.OpenWrite(diskPath + newfileName));
                fileStream.Flush();
                fileStream.Close();
4

1 に答える 1

1

これを using ステートメントでラップすると機能し、ファイルをロックしません

using (var output = File.OpenWrite(diskPath + newfileName))
                {
                    using (var input = fileStream)
                    {
                        input.CopyTo(output);
                    }
                }
于 2013-02-22T22:52:45.040 に答える