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

用fileupload上传PP时出现的问题?

在做一个上传图片的小程序,想在图片上传之前检测了图睛属性,并显示出来.之后再上传.
用fileupload上传图片,我用一个button检测图片属性.另一个button负责上传.
点"浏览",浏览到图片,然后点过"检测"button,检测图片属性,并显示出.但点过检测页面会重新加载.再点"上传"button就没用了,因为fileuppload里没有图片路经.怎么把点检测之前浏览到的图片路径传递给"上传"button按钮的CLICL事件下.请各位高手怎么解决?我不会JS. --------------------编程问答-------------------- 你检测完成吧值赋FileUpload控件啊。。。。重新加载页面肯定就没有了。。。 --------------------编程问答-------------------- 来一段代码, 楼主试试:
<img id="img" />
<asp:FileUpload ID="FileUpload1" runat="server" /> 
<input type="button" value="显示" onclick="show()" />
<asp:Button ID="btn" runat="server" Text="上传" />
<script type="text/javascript">
    function show() {
        var img = document.getElementById("img");
        img.src = document.getElementById("FileUpload1").value;
    }
</script> --------------------编程问答--------------------
引用 1 楼 fenglaijun 的回复:
你检测完成吧值赋FileUpload控件啊。。。。重新加载页面肯定就没有了。。。


是呀,就是不知道怎样解决?
这里的贴子我都找了很多,也看了很多,还是没法. --------------------编程问答-------------------- 楼上的高手。。你没明白楼主的意思。。
楼主是想保存检测前选择的文件路径,不用JS。
我也问下,FileUpload如何获得客户端选择的路径
this.FileUpload1.FileName是文件名没有路径。 --------------------编程问答--------------------
引用 4 楼 fenglaijun 的回复:
楼上的高手。。你没明白楼主的意思。。 
楼主是想保存检测前选择的文件路径,不用JS。 
我也问下,FileUpload如何获得客户端选择的路径 
this.FileUpload1.FileName是文件名没有路径。


对对,是的是的.呵呵.. --------------------编程问答-------------------- 建议你吧验证和上传放一起。
如果觉得不好的话。等高手更好的方法吧
        if (this.FileUpload1.FileName.EndsWith("img"))
        {
            this.FileUpload1.SaveAs("D:\\你想要保存的位置");
        } --------------------编程问答-------------------- 在做一个上传图片的小程序,想在图片上传之前检测了图睛属性,并显示出来.之后再上传.
用fileupload上传图片,我用一个button检测图片属性.另一个button负责上传.
点"浏览",浏览到图片,然后点过"检测"button,检测图片属性,并显示出.但点过检测页面会重新加载.再点"上传"button就没用了,因为 fileuppload里没有图片路经.怎么把点检测之前浏览到的图片路径传递给"上传"button按钮的CLICL事件下.请各位高手怎么解决?我不会JS.

====>
楼主是因为点了检测button之后, 页面回传了, 而FileUpload中的路径就清空了.
上面我给了一段例子, 检测button不是服务器控件, 而是一个精通的html元素, 点击该按钮不会引发回传, 当然也不会使FileUpload中的路径丢失.

引用 5 楼 woaizmy 的回复:
引用 4 楼 fenglaijun 的回复:
楼上的高手。。你没明白楼主的意思。。
楼主是想保存检测前选择的文件路径,不用JS。
我也问下,FileUpload如何获得客户端选择的路径
this.FileUpload1.FileName是文件名没有路径。


对对,是的是的.呵呵..

====>
获取客户端的文件路径有什么意义吗????
--------------------编程问答-------------------- 即使你获取了客户端文件的路径, 但是这仅仅是路径字符串, 不是文件内容. 你仅仅知道文件路径是不能获取客户端的文件的.  如果知道客户端的文件路径就可以获取这个文件, 谁还敢上你的网站.

通过FileUpload控件(最终被解析成<input type="file" />), 可以把你本地的文件内容上传到服务器, 而不仅仅是一个字符串. --------------------编程问答--------------------
引用 7 楼 JGood 的回复:


但点击显示之后没反应. --------------------编程问答--------------------
引用 8 楼 JGood 的回复:
即使你获取了客户端文件的路径, 但是这仅仅是路径字符串, 不是文件内容. 你仅仅知道文件路径是不能获取客户端的文件的.  如果知道客户端的文件路径就可以获取这个文件, 谁还敢上你的网站. 

通过FileUpload控件(最终被解析成 <input type="file" />), 可以把你本地的文件内容上传到服务器, 而不仅仅是一个字符串.


哦,这样,学习了. --------------------编程问答-------------------- 我在ie下没问题 --------------------编程问答-------------------- 用Ajax,把验证控件放到UpdatePanel中应该可以 --------------------编程问答-------------------- 你可以用session来存储文件的路径,等在页面重新加载的时候检查session时候为空,如果不为空就把session的值赋给fileupload,就可以!! --------------------编程问答--------------------
引用 13 楼 z易做图ianle 的回复:
你可以用session来存储文件的路径,等在页面重新加载的时候检查session时候为空,如果不为空就把session的值赋给fileupload,就可以!!


这个试过,不行. --------------------编程问答--------------------
引用 12 楼 y_qingbin 的回复:
用Ajax,把验证控件放到UpdatePanel中应该可以


偶是菜鸟,不会AJAX. --------------------编程问答--------------------
引用 2 楼 JGood 的回复:
来一段代码, 楼主试试: 
<img id="img" /> 
<asp:FileUpload ID="FileUpload1" runat="server" /> 
<input type="button" value="显示" onclick="show()" /> 
<asp:Button ID="btn" runat="server" Text="上传" /> 
<script type="text/javascript"> 
    function show() { 
        var img = document.getElementById("img"); 
        img.src = document.getElementById("FileUpload1").value; 
    } 
</script>



不回传是不是也无法触发CLICK事件? --------------------编程问答-------------------- 我这有个小例子不知道是否能帮上lz的忙

var fileUpload=document.getElementById("FileUpload1");
        var path=fileUpload.value;
        var endName=path.toUpperCase().substr(path.lastIndexOf("."),path.length-1);
        if(fileUpload.value=="")
        {
            return false;
        }
        if(endName!=".JPG" && endName!=".GIF")
        {
            alert("不支持的上传文件格式!");
            return false;
        }
        else
        {
            return true;
        }   
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,