我用WebClient.UploadFile上传的图片总是无法显示,为什么

lilyfirstone 2003-08-22 09:21:00
上传完查看的图片大小是一样的,可就是无法显示,不论是post过去的,还是put过去的,就是显示不了,
...全文
203 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
gOODiDEA 2003-08-28
  • 打赏
  • 举报
回复
是不是路径的问题?
ivy_dream 2003-08-27
  • 打赏
  • 举报
回复
<INPUT id="File1" type="file" name="File1" runat="server">
在.aspx.cs中添加:

我用这个也出错!
gz
bpy 2003-08-26
  • 打赏
  • 举报
回复
关注
qiuji 2003-08-22
  • 打赏
  • 举报
回复
你的意思是:
通过ASP.NET页面上传,
文件在客户端,但是文件名和路径都是固定的,如C:\aa.jpg
要上传到服务器,路径也是固定的

是这样吗?
saucer 2003-08-22
  • 打赏
  • 举报
回复
consider to use HttpWebRequest/HttpWebResponse, see this article on how to post files

http://www.west-wind.com/presentations/dotnetWebRequest/dotnetWebRequest.htm
lilyfirstone 2003-08-22
  • 打赏
  • 举报
回复
是文件名和路径固定

痛苦,一个上午了
怎么老这么不顺
panyee 2003-08-22
  • 打赏
  • 举报
回复
WebClient一般都只用于c/s程序
qiuji 2003-08-22
  • 打赏
  • 举报
回复
“不需要用户浏览”是什么意思?
是不是上传的文件名以及路径是固定的?
lilyfirstone 2003-08-22
  • 打赏
  • 举报
回复
谢谢 qiuji(忆秋季),主要是我这里想弄成不需要用户浏览,而直接从本地上传的.

to 思归:
WebClient myWebClient = new WebClient();
Stream postStream = myWebClient.OpenWrite(uriString,"POST");
postStream.Write(postArray,0,postArray.Length);
postStream.Close();
用这种方法是可以正确的写一个文件,但我怎么样把客户端的那个文件搞成一个byte[]
qiuji 2003-08-22
  • 打赏
  • 举报
回复
需要用户选择浏览的(代码中的File1即是):

在.aspx中添加:
<INPUT id="File1" type="file" name="File1" runat="server">
在.aspx.cs中添加:
protected System.Web.UI.HtmlControls.HtmlInputFile File1;

(在VS.NET中操作:在工具箱选择HTML控件File Field,添加到页面中->选中该控件,点击右键->选中“作为服务器控件运行”)
lilyfirstone 2003-08-22
  • 打赏
  • 举报
回复
格式没变,图片没问题
谢谢 qiuji(忆秋季) :你的方法不需要用户浏览选择吗

to 思归:
我用记事本看的确是多出一些字节,另我用
byte[] postArray = ......;
WebClient myWebClient = new WebClient();
Stream postStream = myWebClient.OpenWrite(uriString,"POST");
postStream.Write(postArray,0,postArray.Length);
postStream.Close();
也不行.
lilyfirstone 2003-08-22
  • 打赏
  • 举报
回复
to 思归:
查看了一下,上传以后的图片是多了这么点东西
-----------------------8c536accdca0f20
Content-Disposition: form-data; name="file"; filename="鐓х墖.jpg"
Content-Type: application/octet-stream
所以就不能正常显示了

to:忆秋季
我没有用file上传,是直接取的本地数据

to: edobnet(oоОoоО)
格式一直是jpg



to:cyp503(谁怕?一蓑烟雨任平生)
图片没问题

总之很感谢,下面是我的代码
System.Net.WebClient wc=new System.Net.WebClient();
byte[] responseArray=wc.UploadFile("c://照片.jpg","POST","d:\\照片.jpg");

我先试试 saucer的方法
qiuji 2003-08-22
  • 打赏
  • 举报
回复
你换一种方法上传试试:

在.aspx文件中:
<form id="upload_img_common" method="post" runat="server" enctype="multipart/form-data">

在.aspx.cs文件中:
using System.IO;

private void btnOK_Click(object sender, System.EventArgs e)
{
string filepath=Server.MapPath("../img/"+Path.GetFileName(File1.PostedFile.FileName));
if(File.Exists(filepath))
{
Message.InnerHtml="上传文件重名,请改名后再上传!";
Message.Style["Color"]="red";
return;
}
else
{
if(File1.PostedFile!=null)
try
{
File1.PostedFile.SaveAs(filepath);
Message.InnerHtml="<b>成功上传!</b>";
}
catch (Exception exc)
{
Message.InnerHtml="保存文件时出错<b>" + filepath + "</b><br>"+ exc.ToString();
}
}

}
(注Message在.aspx中添加:<span id="Message" runat="server"></span>)
saucer 2003-08-22
  • 打赏
  • 举报
回复
open the file in NotePad, you might see some ASCII characters at the beginning

how were you uploading? consider to use WebClient.OpenWrite instead:


byte[] postArray = ......;
WebClient myWebClient = new WebClient();
Stream postStream = myWebClient.OpenWrite(uriString,"POST");
postStream.Write(postArray,0,postArray.Length);
postStream.Close();
cyp503 2003-08-22
  • 打赏
  • 举报
回复


那就是图片的问题了

你试试传另一张
edobnet 2003-08-22
  • 打赏
  • 举报
回复
是不是格式变了?
lilyfirstone 2003-08-22
  • 打赏
  • 举报
回复
在ie里也不能看,用acdsee可以看
cyp503 2003-08-22
  • 打赏
  • 举报
回复


直接在服务器端用IE打开该图片,看能否显示

lilyfirstone 2003-08-22
  • 打赏
  • 举报
回复
to cyp503(谁怕?一蓑烟雨任平生):
有写的权限
文件已上传
路径一致,就是上传前和上传后的字节数是不一样的,总会多出几个字节

to:lionzhf
html和file只能用户浏览本地文件,然后post,这个可以不用选择直接上传
lionzhf 2003-08-22
  • 打赏
  • 举报
回复
upfielname.PostedFile.SaveAs为啥不用这个而用WebClient.UploadFile
加载更多回复(5)

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧