C# 是否可以在发送到ftp服务器之前在本地临时存储文件?

C# 是否可以在发送到ftp服务器之前在本地临时存储文件?,c#,asp.net,ftp,C#,Asp.net,Ftp,我有一个用于文件上传的ASP控件。当用户发布它时,它首先本地存储在我运行网站的地方,然后我将其复制到远程ftp服务器 但是,一旦复制到ftp服务器,是否可以将其从本地服务器中删除?我想把它存储在~temp文件夹中,但我无法让它工作。现在我需要在我的项目中创建一个名为“temp”的文件夹。有什么想法吗?以下是方法: String id = Request.QueryString["ID"]; String path = Server.MapPath(

我有一个用于文件上传的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);
                }

为什么不在using语句之后执行file.delete?

您可以调用
client.UploadData()
从内存上载字节数组,而不涉及本地磁盘。

有什么问题吗?什么不起作用?@SLaks问题是我只想暂时存储该文件,这意味着我希望它在复制到Ftp服务器后立即从本地服务器上消失。所以你问如何删除文件?或者,如果有某种方法只存储文件,直到执行另一个命令。这就是我要说的,感谢您的时间和知识,尽管SLaks是第一个:)