我有一个用于文件上传的ASP控件。当用户发布它时,它首先本地存储在我运行网站的位置,然后我将其复制到远程ftp服务器。
但是,一旦将其复制到ftp服务器,是否可以将其从本地服务器中删除?我想把它存放在一个~temp文件夹中,但我无法让它工作。截至目前,我需要在我的项目中创建一个名为“temp”的文件夹。有任何想法吗?方法如下:
String id = Request.QueryString["ID"];
String path = Server.MapPath("~/temp/");
String filename = Path.GetFileName(fuPicture.PostedFile.FileName);
if (fuPicture.HasFile)
{
try
{
if (
fuPicture.PostedFile.ContentType == "image/jpeg" ||
fuPicture.PostedFile.ContentType == "image/png" ||
fuPicture.PostedFile.ContentType == "image/gif"
)
{
fuPicture.PostedFile.SaveAs(path + fuPicture.FileName);
}
else
{
lblFeedback.Text = "Not allowed file extension";
}
}
catch (Exception ex)
{
lblFeedback.Text = "Error when uploading";
}
path += fuPicture.FileName;
String ftpServer = "ftp://xxxx:xxxx";
String userName = "xx";
String password = "xx";
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create(new Uri("ftp://xxxx:xxxx/" + id));
request.Method = WebRequestMethods.Ftp.MakeDirectory;
request.Credentials = new NetworkCredential(userName, password);
using (var resp = (FtpWebResponse)request.GetResponse())
{
WebClient client = new WebClient();
client.Credentials = new NetworkCredential(userName, password);
client.UploadFile(ftpServer + "/" + id + "/" +
new FileInfo(path).Name, "STOR", path);
}
答案 0 :(得分:0)
为什么在using语句之后不执行file.delete?
答案 1 :(得分:0)
您可以调用client.UploadData()
从内存中上传字节数组,而根本不涉及本地磁盘。