MVC异步上传图片到本地/服务器

这两天朋友问我,有没有异步上传图片到本地/服务器这种demo,他有用, 我就想,好吧, 那刚好周末了,整理一套出来。

主要用到的是jquery uploadify 这个juqery的插件 ,可以无刷新,直接后台上传返回地址

下面先看前台的代码:

@{
    ViewBag.Title = "Demo";
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@section styles{
    <link href="~/Content/uploadify.css" rel="stylesheet" />
}

<h2>Demo</h2>

<h2>实例</h2>
<div class="form-group">
    <input class="form-control" type="file" id="PickImage" name="PickImage" value="浏览图片" />
</div>

<div class="form-group">
    <img class="img-rounded" id="Rimg" width="200" height="200"/>
</div>

@section scripts{
    <script src="~/Scripts/jquery.uploadify.min.js"></script>
    <script>
        jQuery(function () {
            $(‘#PickImage‘).uploadify({
                ‘swf‘: ‘/Content/uploadify.swf‘, ‘buttonText‘: ‘选择图片并上传‘,
                ‘uploader‘: ‘@Url.Action("UploadImage","Demo")‘,
                ‘fileTypeDesc‘: ‘图片类型‘,
                ‘fileTypeExts‘: ‘*.jpg;*.jpeg;*.png‘,
                "formData": { "folder": "/product/" },
                onUploadSuccess: function (localFileObject, serverData, receivedResponse) {
                    console.log(serverData)
                    if (typeof (serverData) == "string")
                        serverData = JSON.parse(serverData);
                    $("#HeadImgurl").val(serverData.ImagePath);
                    $("#Rimg").attr("src", serverData.ImagePath);
                },
                onUploadComplete: function (fileObj) {
                }
            });

        });
    </script>
}

后台的代码也很简单:

using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace Demo_UploadImageToServer.Controllers
{
    public class DemoController : Controller
    {
        // GET: Demo
        public ActionResult Demo()
        {
            return View();
        }

        #region 帮助方法
        //图片异步上传
        public ActionResult UploadImage()
        {
            Response.ContentType = "text/plain";
            Response.Charset = "utf-8";

            HttpPostedFileBase file = Request.Files["Filedata"];
            string path = ConfigurationManager.AppSettings["Domain"].ToString(); //填写服务器域名
            string basePath = "/UploadPic/";
            string uploadPath = Server.MapPath(basePath); //本地路径
            if (file != null)
            {
                if (!Directory.Exists(uploadPath))
                {
                    Directory.CreateDirectory(uploadPath);
                }
                string fileName = file.FileName;
                string ext = fileName.Substring(fileName.LastIndexOf("."));
                fileName = DateTime.Now.Ticks + ext;
                file.SaveAs(uploadPath + fileName); 

                //服务器上传
                //return Json(new { ImagePath = string.Format("{0}{1}{2}", path, basePath, fileName) });

                //本地上传
                return Json(new { ImagePath = string.Format("{0}{1}", basePath, fileName) });
            }
            else
            {
                return Json(new { error = 0 });
            }
        }
        #endregion
    }
}
时间: 2024-12-29 01:52:22

MVC异步上传图片到本地/服务器的相关文章

通过微信接口上传图片到本地服务器

1 /*{ 2 HTTP/1.1 200 OK 3 Connection: close 4 Content-Type: image/jpeg 5 Content-disposition: attachment; filename="MEDIA_ID.jpg" 6 Date: Sun, 06 Jan 2013 10:20:18 GMT 7 Cache-Control: no-cache, must-revalidate 8 Content-Length: 339721 9 10 Xxxx

在.net MVC中异步上传图片或者文件

今天用到了MVC异步上传图片,找了半天写下来以后方便查找异步提交图片需要一个MyAjaxForm.cs             地址http://pan.baidu.com/s/1i3lA693 密码txgp 前台代码 @using (Ajax.BeginForm("AddMessages", "MenuInfo", new AjaxOptions { HttpMethod = "post", OnSuccess = "Successd

搭建一个Tomcat,作为图片服务器,异步上传图片

1.图片服务器Tomcat的设置  tomcat/conf/web.xml中内容更改,将tomcat设置为可以读写 <servlet>     <servlet-name>default</servlet-name>             <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>         <init-param>   

kindeditor扩展粘贴图片功能&amp;修改图片上传路径并通过webapi上传图片到图片服务器

前言 kindeditor是一个非常好用的富文本编辑器,它的简单使用我就不再介绍了. 而kindeditor却对图片的处理不够理想. 本篇博文需要解决的问题有两个: kindeditor扩展粘贴图片功能 kindeditor修改图片上传路径并通过webapi上传图片到图片服务器(支持分布式图片) 结果演示 1.扩展粘贴图片功能演示 2.修改图片上传路径演示: 我们的网站演示地址是:http://localhost:9393/ 我们的图片服务器地址是:http://localhost:9394/

使用Ajax异步上传图片的方法(html,javascript,php)

前两天项目中需要用到异步上传图片和显示上传进度的功能,于是找了很多外国的文章,翻山越岭地去遇上各种坑,这里写篇文章记录一下. HTML <form id="fileupload-form"> <input id="fileupload" type="file" name="file" > </form> HTML代码没什么好说,一个form表单,还有文件类型的input.我们来看js部分.

[Ajax] 使用Ajax异步上传图片文件(非Form表单提交)

通过表单Form提交来上传文件的方式这里就不说了: 下面介绍,通过js中使用ajax异步上传图片文件: 新建一个html页面和一个一般处理程序即可: 涉及思路: //发送2次Ajax请求完成js异步上传文件的操作:          //第1次,post 只上传文件,返回文件名name          //第2次,get 根据文件名name定位服务器上的文件,同时根据浏览器传过来的realname重命名服务器上的文件          //(如果有其他参数,也可以通过第2次一并上传) 图片文件

ajax异步上传图片&amp;SpringMVC后台代码

function uploadPic(){ var options = { url : "/upload/updatePic.action", type : "post", dataType : "json", success : function(data){ $("#allUrl").attr("src", data.url); $("#imgUrl").val(data.url);

Aspnet MVC 异步调用

一个简图来描述下Aspnet MVC下的异步调用 { request } / \/ -------ISS------- > work thread | | \ route - aysn controller | | \ [invoke] clr thread pool | / | / | / complete -> asyncManager | / |------asyncManager 从简图可以了解: 用户发送请求,服务器路由到控制器,控制器到action,action内部通过线程池调用新

一种基于Qt的可伸缩的全异步C/S架构服务器实现(六) 整合各个模块实现功能

在前面的章节中,介绍了网络传输.任务线程池.数据库和集群四个主要功能模块.到现在为止,这些模块都还只是一种资源,没有产生实际的运行效果.对一个具备真实功能的应用来说,需要有一个整合的过程.整合方法很多,这里以典型的客户 -客户通信来举例说明. (一)类结构 1."客户端" 这个概念被抽象为一个节点类st_clientNode,每个客户端连接对应了该类的一个实例.这个类不但存储了有关该连接的所有背景信息(比如聊天程序中的用户名等),还提供了正确解释数据流的代码实现.由于想分开传输层和应用