博问中如何用AJAX方式上传图片地址上传后

  最近在博问中看到一个问题,问在MVC中如何用AJAX方式上传图片,这里做了一个DEMO,详细解释一下。

  本DEMO代码非常简单,就是一个页面上有一个上传图片按钮,点击后弹出一个层,在这个弹出层里上传图片js实现图片编辑器,然后把图片地址更新到页面上。在获得上传的图片地址后你可以做其他处理(如插入到文本编辑器中)。

  Controller

  <pre>public class ImageController : Controller
{

  1. public ActionResult Index()
  2. {
  3. return View();
  4. }
  5. [HttpPost]
  6. public JsonResult Upload(HttpPostedFileBase upImg)
  7. {
  8. string fileName = System.IO.Path.GetFileName(upImg.FileName);
  9. string filePhysicalPath = Server.MapPath("~/upload/" + fileName);
  10. string pic="", error="";
  11. try
  12. {
  13. upImg.SaveAs(filePhysicalPath);
  14. pic = "/upload/" + fileName;
  15. }
  16. catch (Exception ex)
  17. {
  18. error = ex.Message;
  19. }
  20. return Json(new
  21. {
  22. pic = pic,
  23. error = error
  24. });
  25. }
  26. re>

  提示:这里上传到网站根目录的upload文件夹中,请根据自己的需要更改或添加这个目录。

  View

  Index.cshtml:

  js实现图片编辑器_js实现图片滚动_js实现ui编辑

  <pre>@{

  1. ViewBag.Title = "Index";
  2. Layout = "~/Views/Shared/_Layout.cshtml";

}
@section HeadCss{

  1. form{
  2. border:1px solid #CCC;
  3. border-radius:5px;
  4. padding:10px;
  5. margin:10px 0;
  6. width:400px;
  7. background:#EEE;
  8. }

}
@section HeadScript{

  1. $(function () {
  2. $("#btn_show").bind("click", function () {
  3. $("#form_upload").show();
  4. var options = {
  5. success: function (responseText, statusText, xhr, $form) {
  6. var picPath = responseText.pic;
  7. if (picPath == "") {
  8. alert(responseText.error);
  9. }
  10. else {
  11. $("#form_upload").hide();
  12. $("#result").attr("src", picPath).show();
  13. }
  14. },
  15. error: function (XMLHttpRequest, textStatus, errorThrown) {
  16. console.log(textStatus);
  17. console.log(errorThrown);
  18. }
  19. };
  20. $("#form_upload").[ajax][6]Form(options);
  21. });
  22. });

}

  提示:在options的success方法中获取到上传的图片地址,你可以根据需要进行后续处理

  _Layout.cshtml:

  <pre>DOCTYPE html> @ViewBag.Title @RenderSection("HeadCss",required:false) @RenderSection("HeadScript",required:false) @RenderBody() </pre>

  引用的几个文件

  Site.css跟jquery-1.4.4.min.js就不说了,用VS创建MVC项目默认就有

  js实现图片编辑器_js实现图片滚动_js实现ui编辑

  jquery.form.js,这是一个jquery Form 插件,地址:

  效果

  js实现图片滚动_js实现ui编辑_js实现图片编辑器

  js实现图片滚动_js实现图片编辑器_js实现ui编辑

  打开页面,点击“上传图片”后选择一张图片

  js实现ui编辑_js实现图片滚动_js实现图片编辑器

  上传后效果图

  PS:本文只是简单的示例js实现图片编辑器,很多细节没有处理,请使用者自己根据需要完善

文章由官网发布,如若转载,请注明出处:https://www.veimoz.com/1461
0 评论
833

发表评论

!