【发布时间】:2012-01-26 18:30:15
【问题描述】:
在使用 ftp 上传文件后,我无法处理上传的文件。
用户上传的文件包含xml。我必须将此文件保存到磁盘,但我无法将此文件直接写入磁盘,因此我使用 ftp 保存它。保存后,需要对其进行处理以将其内容保存在数据库中。 XmlReader 失败并显示错误“未检测到根元素”。经过一番调试,我得出的结论是文件是空的。
我试图复制文件(其中 xsdUpload 是用户上传的文件):
FileUpload test = new FileUpload();
test = xsdUpload;
但我不太确定这是否也会将文件复制到内存中。
ftp上传函数如下:
public string uploadXsd(string fileName, FileUpload xsd)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url + '/' + fileName);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
StreamReader sourceStream = new StreamReader(xsd.FileContent);
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
return url + '/' + fileName;
}
这个功能很好用。我可以在它应该在的目录中看到该文件。
处理我使用的文件:
XmlReader reader = XmlReader.Create(xsdUploaded.FileContent);
while (reader.Read())
{
if (reader.Name != "")
{
有人有解决办法吗?
【问题讨论】:
标签: c# asp.net file-upload ftp