C#如何在上传图片时点浏览按钮就可以上传并显示图片?

时间:2022-05-06 08:20:32
把本地的图片上传上去的时候 ,点浏览选择好本地的图片路径 就可以直接让他显示出来, 而不用通过提交才显示出来,  请教高手该怎么做啊?

14 个解决方案

#1


LZ的话让我有点晕。。别急,把话整理一下说清楚

#2


  private void btnImage_Click(object sender, EventArgs e)
        {
                               this.dlgOpenFile.Filter = "JPEG(*.jpg;*.jpeg;*.gif;*.bmp)|*.jpg;*.jpeg;*.gif;*.bmp";

            this.dlgOpenFile.CheckFileExists = true;
            this.dlgOpenFile.CheckPathExists = true;
                       this.dlgOpenFile.ShowDialog();

                       ImgPath = dlgOpenFile.FileName;
                           pbphoto.Image = Image.FromFile(ImgPath);
                pbphoto.SizeMode = PictureBoxSizeMode.StretchImage;

          
        }

#3


上面的代码就是选中图片后,就显示出来

#4


图片预览 功能 必须将图片上传到服务器才可以!
因为权限的问题 无法本地预览!

不过去年有个CSDNer写了个js的脚本 能实现预览。但是这个也不是长久之计
http://topic.csdn.net/u/20091222/00/2da91ff1-9bb2-431c-8ddf-bb3011d7efbe.html

#5


就像58这种,http://post.58.com/102/8/s5
我看了一下好像是用jquery实现的,不知道该怎么做啊

#6


我要实现在效果是当选中图片的时候图片就已经开始上传了,上传完毕把图片地址保存在文本框里面并显示出来,就OK

#7


我要实现在效果是当选中图片的时候图片就已经开始上传了,上传完毕把图片地址保存在文本框里面并把图片显示出来,就OK

#8


把<img> 的src属性设置成本地的图片地址就行了

#9


如果你只是单一的上传一张图片,在获取文件路径后,转换成二进制,用控件显示,我只是提供一种思路。。。。

#10


点浏览选择好本地的图片路径就直接开始上传呢?不是点提交才能上传这个效果怎么做的呢?

#11


function (obj) { //logo上传添加事件  

02        var logoimg = null;  

03        if (document.all) {//如果是IE情况下  

04            obj.select();  

05            logoimg = document.selection.createRange().text;  

06        //由于是采用滤镜的方式,所以要把图片设置为不可见,在图片外层的DIV上面设置滤镜效果  

07            $(".setup_logo_left img").removeAttr("src");  

08            $(".setup_logo_left img").css("display", "none");  

09            var img = document.getElementById("preview_fake");  

10            img.filters.item(  

11            'DXImageTransform.Microsoft.AlphaImageLoader').src = logoimg;  

12            return;  

13        }  

14        logoimg = obj.files[0].getAsDataURL();  

15        $(".setup_logo_left img").attr("src", logoimg);  

16    } 

view sourceprint?01 <style type="text/css">  

02         #preview_fake  

03         {  

04             /* 该对象用户在IE下显示预览图片   这一段样式不能少 */  

05             filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);  

06             width: 80px;  

07             height: 80px;  

08         }  

09 </style>  

10 <div id="preview_fake">  

11 <img height="80" width="80" src="1.gif">  

12 </div> 


效果很不错,在IE6,IE7,IE8,FOX,哦还有一个特让人纠结的360都正常显示

#12


不用那么麻烦的啊,楼主只是想在选择浏览文件的时候就把本地的路径赋予IMG标签就可以了。
上传是提交之后的事情,楼主没有问提交后让图片出现。如果是提交后的浏览,一般图片存在服务器上的话,数据库也应该有路径吧,从数据库拿出来就可以了。

#13


<form name="form5" id="form5" method="post" action="#">
 <input type="file" name="file5" id="file5" onchange="preview5()"/>
</form>
<script type="text/javascript">
function preview5()

var x = document.getElementById("file5");
 if(!x || !x.value) return; var patn = /.jpg$|.jpeg$|.gif$/i; if(patn.test(x.value))
{    var y = document.getElementById("img5");   

 if(y)
{      
y.src = 'file://localhost/' + x.value;   
 }
else
{  
 var img=document.createElement('img');  
 img.setAttribute('src','file://localhost/'+x.value); 

 img.setAttribute('width','120');     
 img.setAttribute('height','90');      

 img.setAttribute('id','img5');      
 document.getElementById('form5').appendChild(img);    } 

}else{    alert("您选择的似乎不是图像文件。");
 }
}
</script> 

#14


该回复于2011-04-11 17:01:51被版主删除

#1


LZ的话让我有点晕。。别急,把话整理一下说清楚

#2


  private void btnImage_Click(object sender, EventArgs e)
        {
                               this.dlgOpenFile.Filter = "JPEG(*.jpg;*.jpeg;*.gif;*.bmp)|*.jpg;*.jpeg;*.gif;*.bmp";

            this.dlgOpenFile.CheckFileExists = true;
            this.dlgOpenFile.CheckPathExists = true;
                       this.dlgOpenFile.ShowDialog();

                       ImgPath = dlgOpenFile.FileName;
                           pbphoto.Image = Image.FromFile(ImgPath);
                pbphoto.SizeMode = PictureBoxSizeMode.StretchImage;

          
        }

#3


上面的代码就是选中图片后,就显示出来

#4


图片预览 功能 必须将图片上传到服务器才可以!
因为权限的问题 无法本地预览!

不过去年有个CSDNer写了个js的脚本 能实现预览。但是这个也不是长久之计
http://topic.csdn.net/u/20091222/00/2da91ff1-9bb2-431c-8ddf-bb3011d7efbe.html

#5


就像58这种,http://post.58.com/102/8/s5
我看了一下好像是用jquery实现的,不知道该怎么做啊

#6


我要实现在效果是当选中图片的时候图片就已经开始上传了,上传完毕把图片地址保存在文本框里面并显示出来,就OK

#7


我要实现在效果是当选中图片的时候图片就已经开始上传了,上传完毕把图片地址保存在文本框里面并把图片显示出来,就OK

#8


把<img> 的src属性设置成本地的图片地址就行了

#9


如果你只是单一的上传一张图片,在获取文件路径后,转换成二进制,用控件显示,我只是提供一种思路。。。。

#10


点浏览选择好本地的图片路径就直接开始上传呢?不是点提交才能上传这个效果怎么做的呢?

#11


function (obj) { //logo上传添加事件  

02        var logoimg = null;  

03        if (document.all) {//如果是IE情况下  

04            obj.select();  

05            logoimg = document.selection.createRange().text;  

06        //由于是采用滤镜的方式,所以要把图片设置为不可见,在图片外层的DIV上面设置滤镜效果  

07            $(".setup_logo_left img").removeAttr("src");  

08            $(".setup_logo_left img").css("display", "none");  

09            var img = document.getElementById("preview_fake");  

10            img.filters.item(  

11            'DXImageTransform.Microsoft.AlphaImageLoader').src = logoimg;  

12            return;  

13        }  

14        logoimg = obj.files[0].getAsDataURL();  

15        $(".setup_logo_left img").attr("src", logoimg);  

16    } 

view sourceprint?01 <style type="text/css">  

02         #preview_fake  

03         {  

04             /* 该对象用户在IE下显示预览图片   这一段样式不能少 */  

05             filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);  

06             width: 80px;  

07             height: 80px;  

08         }  

09 </style>  

10 <div id="preview_fake">  

11 <img height="80" width="80" src="1.gif">  

12 </div> 


效果很不错,在IE6,IE7,IE8,FOX,哦还有一个特让人纠结的360都正常显示

#12


不用那么麻烦的啊,楼主只是想在选择浏览文件的时候就把本地的路径赋予IMG标签就可以了。
上传是提交之后的事情,楼主没有问提交后让图片出现。如果是提交后的浏览,一般图片存在服务器上的话,数据库也应该有路径吧,从数据库拿出来就可以了。

#13


<form name="form5" id="form5" method="post" action="#">
 <input type="file" name="file5" id="file5" onchange="preview5()"/>
</form>
<script type="text/javascript">
function preview5()

var x = document.getElementById("file5");
 if(!x || !x.value) return; var patn = /.jpg$|.jpeg$|.gif$/i; if(patn.test(x.value))
{    var y = document.getElementById("img5");   

 if(y)
{      
y.src = 'file://localhost/' + x.value;   
 }
else
{  
 var img=document.createElement('img');  
 img.setAttribute('src','file://localhost/'+x.value); 

 img.setAttribute('width','120');     
 img.setAttribute('height','90');      

 img.setAttribute('id','img5');      
 document.getElementById('form5').appendChild(img);    } 

}else{    alert("您选择的似乎不是图像文件。");
 }
}
</script> 

#14


该回复于2011-04-11 17:01:51被版主删除