$.ajax 改为$(form).ajaxSubmit  ??? 试试看

解决方案 »

  1.   

    你不能用ajax做异步上传图片,因为你用的是chrome,ajax异步上传图片只能在ie中有效。因为从安全角度考虑,chrome和firefox会处理掉图片的决定路径。chrome中图片的绝对路径只剩下图片名了。
      

  2.   

    你可以用jquery.form.js的ajaxSubmit提交。即在一个form中,这个form添加enctype="multipart/form-data"这个属性,然后将这个form使用$('#formId').ajaxSubmit()提交就可以了
      

  3.   

    jquery.form.js的具体使用方法可以到其官网去看。http://jquery.malsup.com/form/
      

  4.   

    在 非 IE 下那我怎么才能获取到   本地上传的图片的在本地的绝对路径,因为想做预览的功能。
    在IE下是可以获取到绝对路径的
      

  5.   

    试试我刚测试的:http://weddingdress-oem.com/mn/test.php
      

  6.   

    异步上传实际上是 建立一个 iframe 然后 通过他建立上传信息
    或者说 你的 input.file本身就在一个iframe中(但是用户看不出来阿)当iframe提交的时候 主页面只要等待 iframe返回的回调信息就可以了
      

  7.   

    不会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>
      

  8.   

    浏览器不允许直接得到客户端的路径,即使是IE也是需要修改设置的
    http://www.leawo.cn/space-627-do-thread-id-28769.html
      

  9.   

    我asp.net 后台用request.Form[]接收不到file的客户端绝对路径 接收到的全是空值
      

  10.   

    不会.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>
      

  11.   

    楼主莫不是想使用webclient来达到这个目的吧?这个功能也是只能在IE下使用,因为只有IE才会让你获取到图片的绝对路径,虽然要经过配置,但在chrome浏览器下,我劝楼主还是打消了这个念头,因为你是无论如何都获取不到图片的路径的还有图片预览功能,chrome等浏览器也不允许图片的src指向本地路径,所以,退一万步说,就算你拿到了图片的绝对路径,也无法在上传前进行预览
      

  12.   

    要么直接提交form表单  要么就用插件