4个回答
2013-08-29
展开全部
那只能考虑把文件解析为二进制文件,保存到服务器。如此还要考虑文件大小的分包问题。
展开全部
第一步:获取文件的大小并上传的服务器。然后服务器创建一个一样大小的byte数组
第二步:使用FileStream按字节读取图片文件。
第三步:send上一步读取的字节。
对于大文件可以使用循环每次读取固定字节。如果一次性读完内存扛不住。
基本步骤就这些。不要抄源码了,那样你学不到东西的。
第二步:使用FileStream按字节读取图片文件。
第三步:send上一步读取的字节。
对于大文件可以使用循环每次读取固定字节。如果一次性读完内存扛不住。
基本步骤就这些。不要抄源码了,那样你学不到东西的。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
拿到本地的路径就可以了,有个ftp的例子
FtpWebRequest reqFTP;
try
{
FileInfo fileInfo = new FileInfo(图片路径);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(服务器路径+ fileInfo.Name));
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.Credentials = new NetworkCredential(ftp账号, ftp密码);
reqFTP.KeepAlive = false;
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
reqFTP.UseBinary = true;
reqFTP.ContentLength = fileInfo.Length;
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
FileStream fs = fileInfo.OpenRead();
Stream strm = reqFTP.GetRequestStream();
contentLen = fs.Read(buff, 0, buffLength);
while (contentLen != 0)
{
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
}
strm.Close();
fs.Close();
}
catch (Exception ex)
{
}
FtpWebRequest reqFTP;
try
{
FileInfo fileInfo = new FileInfo(图片路径);
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(服务器路径+ fileInfo.Name));
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.Credentials = new NetworkCredential(ftp账号, ftp密码);
reqFTP.KeepAlive = false;
reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
reqFTP.UseBinary = true;
reqFTP.ContentLength = fileInfo.Length;
int buffLength = 2048;
byte[] buff = new byte[buffLength];
int contentLen;
FileStream fs = fileInfo.OpenRead();
Stream strm = reqFTP.GetRequestStream();
contentLen = fs.Read(buff, 0, buffLength);
while (contentLen != 0)
{
strm.Write(buff, 0, contentLen);
contentLen = fs.Read(buff, 0, buffLength);
}
strm.Close();
fs.Close();
}
catch (Exception ex)
{
}
追问
这样是不是要求,本地要有FTP软件啊??怎么在VS中加载不到头文件啊???
追答
不需要啊,你服务器上ftp开通了就可以了,你不是cs架构的么?怎么会有头文件?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
参悟一下吧 说是说不清楚的 有问题追问我吧 哥很忙的.
protected void UploadFiles(object sender, EventArgs e)
{
if (HttpContext.Current.Request.Files.Count > 0)
{
//System.Web.HttpPostedFile Provides access to individual files that have been uploaded by a client.
HttpPostedFile postedFile = HttpContext.Current.Request.Files[0];//获得用户提交的文件
string savePath;
savePath = abpath + "\\NurImg\\";//保存文件的目录,要事先添加,不会自己添加
string extname = Path.GetExtension(postedFile.FileName);
string pilename = DateTime.Now.ToString("yyyyMMddhhmmss");
savePath += pilename + extname;
if (File.Exists(savePath))
{
File.Delete(savePath);//如果文件已经存在就将已存在的文件删除
}
postedFile.SaveAs(savePath);//将用户提交的文件postedFile保存为savePath
siteimg.ImageUrl = iispath + "NurImg/" + pilename + extname;
}
}
protected void UploadFiles(object sender, EventArgs e)
{
if (HttpContext.Current.Request.Files.Count > 0)
{
//System.Web.HttpPostedFile Provides access to individual files that have been uploaded by a client.
HttpPostedFile postedFile = HttpContext.Current.Request.Files[0];//获得用户提交的文件
string savePath;
savePath = abpath + "\\NurImg\\";//保存文件的目录,要事先添加,不会自己添加
string extname = Path.GetExtension(postedFile.FileName);
string pilename = DateTime.Now.ToString("yyyyMMddhhmmss");
savePath += pilename + extname;
if (File.Exists(savePath))
{
File.Delete(savePath);//如果文件已经存在就将已存在的文件删除
}
postedFile.SaveAs(savePath);//将用户提交的文件postedFile保存为savePath
siteimg.ImageUrl = iispath + "NurImg/" + pilename + extname;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询