本地可以上传图片到ftp,但是程序部署到iis后,用发布的网站上传图片,他fileupload
控间就会去访问服务器的路径,而不是去找上传图片电脑的路径,然后就报错了,找不到文件,请问那个大神有解决的办法
代码如下
public void UpLoadFile(string localFile, string ftpPath)
{
if (!File.Exists(localFile))
{
Response.Write("文件:“" + localFile + "” 不存在!");
return;
}
FileInfo fileInf = new FileInfo(localFile);
FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(ftpPath);// 根据uri创建FtpWebRequest对象
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);// ftp用户名和密码
reqFTP.KeepAlive = false;// 默认为true,连接不会被关闭 // 在一个命令之后被执行
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;// 指定执行什么命令
reqFTP.UseBinary = true;// 指定数据传输类型
reqFTP.ContentLength = fileInf.Length;// 上传文件时通知服务器文件的大小
int buffLength = 2048;// 缓冲大小设置为2kb
byte[] buff = new byte[buffLength];
int contentLen;
// 打开一个文件流 (System.IO.FileStream) 去读上传的文件
FileStream fs = fileInf.OpenRead();
try
{
Stream strm = reqFTP.GetRequestStream();// 把上传的文件写入流
contentLen = fs.Read(buff, 0, buffLength);// 每次读文件流的2kb
while (contentLen != 0)// 流内容没有结束
{
// 把内容从file stream 写入 upload stream
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
}
// 关闭两个流
strm.Close();
fs.Close();
Response.Write("文件【" + ftpPath + "/" + fileInf.Name + "】上传成功!<br/>");
}
catch (Exception ex)
{
Response.Write("上传文件【" + ftpPath + "/" + fileInf.Name + "】时,发生错误:" + ex.Message + "<br/>");
}
}