我在我的网络服务中创建了一个Web方法来从客户端上传文件,但是当我运行我的Web服务文件时它会出错。错误是:
要成为XML可序列化,从ICollection继承的类型必须具有 各级的Add(System.Web.HttpPostedFile)实现 他们的继承等级。 System.Web.HttpFileCollection没有 实现Add(System.Web.HttpPostedFile)。
这是我的asmx代码:
ASMX
[WebMethod]
public void Database(HttpFileCollection File_Collection)
{
using (Database1Entities SampleDb = new Database1Entities())
{
foreach (char File_Uploader in File_Collection)
{
HttpPostedFile Posted_File = File_Collection[File_Uploader];
if (Posted_File.ContentLength > 0)
{
BinaryReader Binary_Reader = new BinaryReader(Posted_File.InputStream);
byte[] File_Buffer = Binary_Reader.ReadBytes(Posted_File.ContentLength);
SampleDb.UploadFiles.Add(new UploadFile
{
Name = Posted_File.FileName,
ContentType = Posted_File.ContentType,
Extension = Path.GetExtension(Posted_File.FileName),
Size = Posted_File.ContentLength,
Content = File_Buffer
});
}
}
SampleDb.SaveChanges();
}
GetUploadedFiles();
}
}
从客户端我调用的方法如下:
protected void BtnUploadFile_Click(object sender, EventArgs e)
{
HttpFileCollection File_Collection = Request.Files;
objSer.Database(File_Collection);
}
任何人都可以帮忙吗?