当前位置: 代码迷 >> ASP.NET >> MVC ajax 下传图片有关问题
  详细解决方案

MVC ajax 下传图片有关问题

热度:982   发布时间:2013-02-25 00:00:00.0
MVC ajax 上传图片问题
Html.BeginForm("AddImg","admin",FormMethod.Post,new { @enctype="multipart/form-data"}

用以上MVC非AJAX能获取其中的<input type="file" id="f1" name="f1" />
换成
Ajax.BeginForm("AddImg","", new AjaxOptions { UpdateTargetId = "myimg" }, new { @enctype = "multipart/form-data" })

之前就没办法获取<input type="file" id="f1" name="f1" />
了,不知道是不是哪里写错了,请高手指点!

------解决方案--------------------------------------------------------
Ajax.BeginForm本来就是读取不了file,安全性问题,如同你在WEBFORM UpdatePanel中一样,无法使用file

你可以试试jquery.form.js
------解决方案--------------------------------------------------------
js代码处理
JScript code
    var options = {        dataType: 'json',        beforeSubmit: _this.showRequest,  //提交前处理        error: _this.showError,           //错误处理        success: _this.showResponse       //提交成功的处理    };    $("#myForm").ajaxForm(options);
------解决方案--------------------------------------------------------

纯ajax没有办法执行文件上传

你要上传文件必须有一个隐藏的frame 通过这个子frame上传 然后向子写入js代码来通知页面

前台的代码:
HTML code
<div id="UpLoad_Show"></div><script type="text/javascript">    function UpLoadPictureShow(id, ifVertically) {        var value = $("#pictures").val();        var img;        if (ifVertically == "Vertically") {            img = "<img alt='' src='/File/DownLoad/" + id + "' width='90px' height='120px' />&nbsp;";        }        else {            img = "<img alt='' src='/File/DownLoad/" + id + "' width='120px' height='90px' />&nbsp;";        }        $("#UpLoad_Show").append(img);        if (value == 0) {            value = id;        }        else {            value += "," + id;        }        $("#pictures").val(value);    }</script><div>    <form action="/File/UpLoadPicture" method="post" enctype="multipart/form-data" target="UpLoad_Do">        <input name="File1" type="file" />        <input type="submit" value="上传" />    </form>    <iframe id="UpLoad_Do" src="../Child/UpLoad.htm" style="display:none"></iframe></div>
  相关解决方案