1

Webサービスを使用してファイルをWebサーバーにアップロードしようとしています。問題は、参照されているWebメソッドを使用しようとするたびに、「指定されたファイル形式がサポートされていません」という例外が発生することです。

これは私のアプリケーション内のコードです:

Service1 upload = new Service1();
FileStream fs = new FileStream("ciao.txt", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
BinaryReader br = new BinaryReader(fs);
int length = new FileInfo("ciao.txt").Length;
byte[] buffer = br.ReadBytes((Int32)length);            
upload.WriteFile(buffer, "ciao.txt"); // <-- Exception
br.Close();
fs.Close();

これはhttp://MySite.somee.com/WebServices/WebService1/upload.asmx.cs内のコードです(私のサイトは実際にはMySiteとは呼ばれていません)

[WebService(Namespace = "http://MySite.somee.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class Service1 : System.Web.Services.WebService
{
[WebMethod]
public void WriteFile(byte[] buffer, string FileName)
{            
StreamWriter sw = new StreamWriter(FileName, false);
sw.Write(buffer.ToString());
sw.Close();
}
}

私は何が間違っているのですか?

編集:Webサービスコードを次のように変更しました

    [WebMethod]
    public void UploadFile(byte[] f, string fileName)
    {
            MemoryStream ms = new MemoryStream(f);
            FileStream fs = new FileStream(Path.Combine(System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath, "/ciao.txt");, FileMode.Create)
            ms.WriteTo(fs);
            ms.Close();
            fs.Close();
            fs.Dispose();
    }

それに応じてクライアントを更新しました

                FileInfo fInfo = new FileInfo("ciao.txt");
                FileStream fStream = new FileStream("ciao.txt", FileMode.Open, FileAccess.Read);
                BinaryReader br = new BinaryReader(fStream);
                long numBytes = fInfo.Length;
                byte[] data = br.ReadBytes((int)numBytes);
                br.Close();
                MyService.UploadFile(data, "ciao.txt");
                fStream.Close();
                fStream.Dispose();

この方法では例外は発生しませんが、ファイルはまだ作成されていません。サイト全体で「ciao.txt」を検索しましたが、見つかりませんでした。

何か助けはありますか?

edit2:解決しました!プログラムがフレームワーク3.5でコンパイルされている間、フレームワークを切り替えるとすぐに、サイトをフレームワーク4.0〜4.5に設定しました。

4

2 に答える 2

0

以下は、Web サイトからデータベースにファイルをロードするのに役立つ記事です。

http://www.codeproject.com/Articles/48619/Reading-and-Writing-BLOB-Data-to-Microsoft-SQL-or

于 2013-02-15T00:21:38.447 に答える
0

あなたの問題はこれに似ている可能性があり、すでに回答されています:

「指定されたパスの形式はサポートされていません。」

于 2013-02-15T00:57:55.547 に答える