asp.net(c#)上传图片时,取不到要上传图片的本地路径?

webmm 2009-12-01 10:59:21
发现了很奇怪的事情,我是用vs2008,在本地一切正常,上传图片前还有个js函数读取本地图片来预览,预览上传都OK的,但是网站到了服务器却不行,选择了上传浏览选中的某图片预览是个X看不到,属性看一下,路径居然是以当前网站路径,那当然显示不出来!检查了上传目录的权限,确确实实的是Network Service的可读写入等都加了,为什么啊?
...全文
943 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloudgamer 2010-05-12
  • 打赏
  • 举报
回复
可以试试这个图片上传预览系统
Mirana_NightShade 2009-12-01
  • 打赏
  • 举报
回复
up
JackLeiMM 2009-12-01
  • 打赏
  • 举报
回复
你看看这个把,应该没啥问题的,我已经测试过了,可以预览的
JackLeiMM 2009-12-01
  • 打赏
  • 举报
回复

protected void Button1_Click(object sender, EventArgs e)
{
//调用转换二进制方法
int FileLen = Fud_Pic.PostedFile.ContentLength;
Byte[] buffByle = new Byte[FileLen];
//创建访问客户端上传文件的对象
HttpPostedFile hp = Fud_Pic.PostedFile;
//创建数据流对象
Stream sr = hp.InputStream;
//将图片数据放到FileData数组对象实例中,0代表数组指针的起始位置,FileLen代表指针的结束位置
sr.Read(buffByle, 0, FileLen);
sr.Close();
//得到文件类型
// Response.ContentType 的默认值为默认值为“text/html”
Response.ContentType = "image/GIF";
//图片输出的类型有: image/GIF image/JPEG
Response.BinaryWrite(buffByle);
}
//显示图片
public System.Drawing.Image ReturnPhoto(byte[] streamByte)
{
System.IO.MemoryStream ms = new System.IO.MemoryStream(streamByte);
System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
return img;
}

webmm 2009-12-01
  • 打赏
  • 举报
回复
这本来就是用js来获取那个控件的选择值罢了....我感觉是IE版本升级了,现在就是不能这么预览了,除了网站是localhost之外。谢谢各位,结贴!
JackLeiMM 2009-12-01
  • 打赏
  • 举报
回复
我怎么始终觉得,用FileUpload事做不出预览效果的,只能用JS来做
webmm 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 sandy945 的回复:]
img.src = document.getElementById("FileUpload_ad").value; 

-----------------------------------------------------

你怎么就认为这代码对呢?

之前可以 是因为 服务器和客户端 是同一台机器
[/Quote]

你自己试试啊,我用不是只用在一个网站上
JackLeiMM 2009-12-01
  • 打赏
  • 举报
回复
恩,改了下,现在能看到了,我在做FileUpload的预览,等会传上来
悔说话的哑巴 2009-12-01
  • 打赏
  • 举报
回复
看看
阿非 2009-12-01
  • 打赏
  • 举报
回复
img.src = document.getElementById("FileUpload_ad").value;

-----------------------------------------------------

你怎么就认为这代码对呢?

之前可以 是因为 服务器和客户端 是同一台机器
webmm 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 jackleimm 的回复:]
恩,我去试试,用了你的JS文件,文件怎么是个X呢?
[/Quote]

啊,你是说你也看不到预览图片?
webmm 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 jackleimm 的回复:]
恩,我去试试,用了你的JS文件,文件怎么是个X呢?
[/Quote]

所以我才奇怪,问问大家有没有见过这个情况,明明这个是很普通的代码,用过N次没问题啊,怎么到了某个服务器上就不行了
JackLeiMM 2009-12-01
  • 打赏
  • 举报
回复
恩,我去试试,用了你的JS文件,文件怎么是个X呢?
webmm 2009-12-01
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jackleimm 的回复:]
这里你的思路是错误的,就算是预览,其实也是上传到了服务器的,不可能在客户端预览的
[/Quote]

怎么可能预览其实也是上传到了服务器呢?我给你代码看看

<asp:FileUpload ID="FileUpload_ad" runat="server" Width="320px" onchange="javascript:chkImg(1);" />
<img ID="img1" align="top" border="1" class="Picbox" name="img1" style="visibility: hidden" />



<script type="text/javascript">
function chkImg(num)
{
var img
img=document.getElementById("img"+num);
img.style.width="240";
img.style.height = "200";
img.style.position="relative";
img.style.visibility="visible";
img.src = document.getElementById("FileUpload_ad").value;

}
</script>
webmm 2009-12-01
  • 打赏
  • 举报
回复
js我也一样用这个,本来选中了本地的图片就好好的有预览嘛,用在N多网站上好好的,但这个网站就是不行,我alert出来img.src,就是网站地址"http://www.xxx.com/xx33.jpg" ,所以预览不行,上传也为空,不明白啊
JackLeiMM 2009-12-01
  • 打赏
  • 举报
回复
这里你的思路是错误的,就算是预览,其实也是上传到了服务器的,不可能在客户端预览的
阿非 2009-12-01
  • 打赏
  • 举报
回复
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

这句可以去掉
阿非 2009-12-01
  • 打赏
  • 举报
回复

<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>

<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>

<script>

</script>

<style type="text/css">
#newPreview
{
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);
}
</style>
</head>
<body>
<form id="form1" runat="server">

<script language="javascript" type="text/javascript">
function PreviewImg(imgFile)
{
var newPreview = document.getElementById("newPreview");
newPreview.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = imgFile.value;
newPreview.style.width = "80px";
newPreview.style.height = "60px";
newPreview.style.display="inline";

}

</script>

<asp:FileUpload ID="Fud_Pic" runat="server" onchange="PreviewImg(this)" />

<div id="newPreview" style="float: left;position:absolute;"> </div>
</form>
</body>
</html>

webmm 2009-12-01
  • 打赏
  • 举报
回复
没有用第三方,就是那个上传的服务器控件Fileupload~~~,也不是IE的问题,我用ie访问同样代码的其他服务器所在的网站都很正常!,再说本地测试网站时也是一样的IE啊
webmm 2009-12-01
  • 打赏
  • 举报
回复
但是我要的也不是服务器的物理路径啊,上传图片的预览路径其实是客户端的物理路径啊,我现在取到的是http://www.xxx.com/xxx.jpg ,但其实应该是我客户端机子的物理路径 file:E/pic/xxx.jpg才对啊
加载更多回复(9)

62,264

社区成员

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

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

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

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