当前位置:编程学习 > C#/ASP.NET >>

求教一个文件流的问题

我做一个post模拟文件提交的东西
但是有个问题我不会 就是post提交的数据里 
他把图片文件转为文件流 
自己转的话 不能转为string类型 求教怎么把图片转为文件流后 以string类型输出 --------------------编程问答--------------------
数据包就是这种 乱码的部分就是图片 求教怎么把图片转换成这种 --------------------编程问答-------------------- 本来就是二进制数据,怎么转换成string,非要转换,用Encode.Default.GetString,不过出来的是乱码。 --------------------编程问答--------------------
引用 1 楼 w88975 的回复:

数据包就是这种 乱码的部分就是图片 求教怎么把图片转换成这种

你好 你看上面的图片 是截的封包 我就想把自己的图片弄成跟上面一样 用post方式发送出去 但是一直没办法  --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
本来就是二进制数据,怎么转换成string,非要转换,用Encode.Default.GetString,不过出来的是乱码。
版主 看上面的回复  --------------------编程问答-------------------- 真是无话可说,你完全没有概念。

这根本用不着转换成string。 --------------------编程问答--------------------
引用 2 楼 caozhy 的回复:
本来就是二进制数据,怎么转换成string,非要转换,用Encode.Default.GetString,不过出来的是乱码。
也可以说是怎么用post模拟文件上传  有个人给我说要把图片转成文件流 我不知道该转成什么类型 而且提交数据那里怎么写也不知道 急了一下午都没解决 --------------------编程问答-------------------- 不说什么了,贴几个链接自己看吧

http://www.cnblogs.com/greenerycn/archive/2010/05/15/csharp_http_post.html

http://stackoverflow.com/questions/566462/upload-files-with-httpwebrequest-multipart-form-data --------------------编程问答--------------------
引用 7 楼 caozhy 的回复:
不说什么了,贴几个链接自己看吧

http://www.cnblogs.com/greenerycn/archive/2010/05/15/csharp_http_post.html

http://stackoverflow.com/questions/566462/upload-files-with-httpwebrequest-multipart-form-data
看了好久 也不会  --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/36s52zhs.aspx --------------------编程问答--------------------
引用 9 楼 sp1234 的回复:
http://msdn.microsoft.com/zh-cn/library/36s52zhs.aspx
大哥 我搞了一下午没搞定 基础差 你能帮帮我吗 我现在急死了 --------------------编程问答-------------------- 留下邮箱,给你发个以前用的上传文件类。 --------------------编程问答--------------------

View Code 

public static void HttpUploadFile(string url, string file, string paramName, string contentType, NameValueCollection nvc) {
log.Debug(string.Format("Uploading {0} to {1}", file, url));
string boundary = "---------------------------" + DateTime.Now.Ticks.ToString("x");
byte[] boundarybytes = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "\r\n");

HttpWebRequest wr = (HttpWebRequest)WebRequest.Create(url);
wr.ContentType = "multipart/form-data; boundary=" + boundary;
wr.Method = "POST";
wr.KeepAlive = true;
wr.Credentials = System.Net.CredentialCache.DefaultCredentials;

Stream rs = wr.GetRequestStream();

string formdataTemplate = "Content-Disposition: form-data; name=\"{0}\"\r\n\r\n{1}";
foreach (string key in nvc.Keys)
{
rs.Write(boundarybytes, 0, boundarybytes.Length);
string formitem = string.Format(formdataTemplate, key, nvc[key]);
byte[] formitembytes = System.Text.Encoding.UTF8.GetBytes(formitem);
rs.Write(formitembytes, 0, formitembytes.Length);
}
rs.Write(boundarybytes, 0, boundarybytes.Length);

string headerTemplate = "Content-Disposition: form-data; name=\"{0}\"; filename=\"{1}\"\r\nContent-Type: {2}\r\n\r\n";
string header = string.Format(headerTemplate, paramName, file, contentType);
byte[] headerbytes = System.Text.Encoding.UTF8.GetBytes(header);
rs.Write(headerbytes, 0, headerbytes.Length);

FileStream fileStream = new FileStream(file, FileMode.Open, FileAccess.Read);
byte[] buffer = new byte[4096];
int bytesRead = 0;
while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0) {
rs.Write(buffer, 0, bytesRead);
}
fileStream.Close();

byte[] trailer = System.Text.Encoding.ASCII.GetBytes("\r\n--" + boundary + "--\r\n");
rs.Write(trailer, 0, trailer.Length);
rs.Close();

WebResponse wresp = null;
try {
wresp = wr.GetResponse();
Stream stream2 = wresp.GetResponseStream();
StreamReader reader2 = new StreamReader(stream2);
log.Debug(string.Format("File uploaded, server response is: {0}", reader2.ReadToEnd()));
} catch(Exception ex) {
log.Error("Error uploading file", ex);
if(wresp != null) {
wresp.Close();
wresp = null;
}
} finally {
wr = null;
}
}


//调用实例
NameValueCollection nvc = new NameValueCollection();
nvc.Add("id", "TTR");
nvc.Add("btn-submit-photo", "Upload");
HttpUploadFile("http://your.server.com/upload", 
@"C:\test\test.jpg", "file", "image/jpeg", nvc);


参考:
http://stackoverflow.com/questions/566462/upload-files-with-httpwebrequest-multipart-form-data/1924810#1924810
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,