我用jquery做了一个异步的上传图片 但是无法获取文件绝对路径无法上传 请问怎么办 $.ajax 改为$(form).ajaxSubmit ??? 试试看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你不能用ajax做异步上传图片,因为你用的是chrome,ajax异步上传图片只能在ie中有效。因为从安全角度考虑,chrome和firefox会处理掉图片的决定路径。chrome中图片的绝对路径只剩下图片名了。 你可以用jquery.form.js的ajaxSubmit提交。即在一个form中,这个form添加enctype="multipart/form-data"这个属性,然后将这个form使用$('#formId').ajaxSubmit()提交就可以了 jquery.form.js的具体使用方法可以到其官网去看。http://jquery.malsup.com/form/ 在 非 IE 下那我怎么才能获取到 本地上传的图片的在本地的绝对路径,因为想做预览的功能。在IE下是可以获取到绝对路径的 试试我刚测试的:http://weddingdress-oem.com/mn/test.php 异步上传实际上是 建立一个 iframe 然后 通过他建立上传信息或者说 你的 input.file本身就在一个iframe中(但是用户看不出来阿)当iframe提交的时候 主页面只要等待 iframe返回的回调信息就可以了 不会asp.net 主要是前台的代码吧,后台上传程序自己构建就行了。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate,no-store"> <META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT"> <META HTTP-EQUIV="expires" CONTENT="0"> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <title>发布商品</title> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.form.js"></script> <script type="text/javascript"> $(document).ready(function(vv){ //图片上传 $("#maolian").click(function(){ //$("#uimg").click(); }); $("#uimg").change(function(){ var v = ($("#uimg").val()); if ($("#uimg").val()){ alert(v); //$("#upimgform").submit(); $("#upimgform").ajaxSubmit({ //dataType:'script', //data: { upfile: $("#uimg").val() }, type:'post', url: "upaimg.php", beforeSubmit: function(){ $("#maolian").html("图片上传中..."); //$("#yulan").html(""); }, success: function(data){ $("#maolian").html("上传图片"); $("#yulan").append(data); }, error: function(dataa){ //$("#yulan").html(dataa); alert("error"); }, resetForm: false, clearForm: false, timeout: 100000 }); return false; } }); }); </script> </head> <style type="text/css"> .uimg1 {position:relative; overflow:hidden;} .uimg2 {width:80px; border:1px solid; position:absolute; top:0;left:-10px; overflow:hidden; float:right; padding:0; margin:0; filter:alpha(opacity=0); -moz-opacity:0; -khtml-opacity: 0; opacity: 0; } .sc {color:blue;text-decoration:underline;} #yulan img {width:100px; height:80px;} </style> <body> <form id="upimgform" method="post" enctype="multipart/form-data" action="upaimg.php"> 上传图片: <span class="uimg1"><span id="maolian" class="sc">本地上传</span> <span class="uimg2"><input name="uimg" id="uimg" type="file" size="1" style="width:100%" /></span> </span> <!--input type="submit" value="submit" /--> </form> <div id="yulan"></div> </body></html> 浏览器不允许直接得到客户端的路径,即使是IE也是需要修改设置的http://www.leawo.cn/space-627-do-thread-id-28769.html 我asp.net 后台用request.Form[]接收不到file的客户端绝对路径 接收到的全是空值 不会.net帮不了你。但是.net 怎么会接不到的值呢?下面input file提交的值获取不到? <form id="upimgform" method="post" enctype="multipart/form-data" action="upaimg.php"> 上传图片: <span class="uimg1"><span id="maolian" class="sc">本地上传</span> <span class="uimg2"><input name="uimg" id="uimg" type="file" size="1" style="width:100%" /></span> </span> <input type="submit" value="submit" /> </form> 楼主莫不是想使用webclient来达到这个目的吧?这个功能也是只能在IE下使用,因为只有IE才会让你获取到图片的绝对路径,虽然要经过配置,但在chrome浏览器下,我劝楼主还是打消了这个念头,因为你是无论如何都获取不到图片的路径的还有图片预览功能,chrome等浏览器也不允许图片的src指向本地路径,所以,退一万步说,就算你拿到了图片的绝对路径,也无法在上传前进行预览 要么直接提交form表单 要么就用插件 网上看到一个好JS控件,能给扒下来吗? 推荐一个学习的好网站 一个使用javascript调用activex函数的问题。 ajax回调函数中如何传递对象 一个简单的javascript问题,请大家指点 如何通过Javascript获得当前机器的外网IP 一个文件里面怎么连接两个数据库? 这一句javascript怎么写? 非常白痴的问题,但我都不会,请救救我吧 关于js的一个菜单,求大神教育 匹配一个大于0小于10的正整数 js脚本删除checkbox选中项
在IE下是可以获取到绝对路径的
或者说 你的 input.file本身就在一个iframe中(但是用户看不出来阿)当iframe提交的时候 主页面只要等待 iframe返回的回调信息就可以了
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate,no-store">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
<META HTTP-EQUIV="expires" CONTENT="0">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<title>发布商品</title> <script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/jquery.form.js"></script>
<script type="text/javascript">
$(document).ready(function(vv){
//图片上传
$("#maolian").click(function(){
//$("#uimg").click();
});
$("#uimg").change(function(){
var v = ($("#uimg").val());
if ($("#uimg").val()){
alert(v);
//$("#upimgform").submit();
$("#upimgform").ajaxSubmit({
//dataType:'script',
//data: { upfile: $("#uimg").val() },
type:'post',
url: "upaimg.php",
beforeSubmit: function(){
$("#maolian").html("图片上传中...");
//$("#yulan").html("");
},
success: function(data){
$("#maolian").html("上传图片");
$("#yulan").append(data);
},
error: function(dataa){
//$("#yulan").html(dataa);
alert("error");
},
resetForm: false,
clearForm: false,
timeout: 100000
});
return false;
}
});
});
</script>
</head>
<style type="text/css">
.uimg1 {position:relative; overflow:hidden;}
.uimg2 {width:80px; border:1px solid; position:absolute; top:0;left:-10px;
overflow:hidden;
float:right;
padding:0;
margin:0;
filter:alpha(opacity=0);
-moz-opacity:0;
-khtml-opacity: 0;
opacity: 0;
}
.sc {color:blue;text-decoration:underline;}
#yulan img {width:100px; height:80px;}
</style> <body>
<form id="upimgform" method="post" enctype="multipart/form-data" action="upaimg.php">
上传图片:
<span class="uimg1"><span id="maolian" class="sc">本地上传</span>
<span class="uimg2"><input name="uimg" id="uimg" type="file" size="1" style="width:100%" /></span>
</span>
<!--input type="submit" value="submit" /-->
</form>
<div id="yulan"></div>
</body>
</html>
http://www.leawo.cn/space-627-do-thread-id-28769.html
但是.net 怎么会接不到的值呢?下面input file提交的值获取不到?
<form id="upimgform" method="post" enctype="multipart/form-data" action="upaimg.php">
上传图片:
<span class="uimg1"><span id="maolian" class="sc">本地上传</span>
<span class="uimg2"><input name="uimg" id="uimg" type="file" size="1" style="width:100%" /></span>
</span>
<input type="submit" value="submit" />
</form>