jQuery实现异步上传图片(二)
来源:互联网 发布:网络大电影的发展趋势 编辑:程序博客网 时间:2024/06/07 09:02
其实上篇文章(看这里:http://blog.csdn.net/highplayer/article/details/7392337),只是一个伪上传,因为传递给后台的只是一个图片的URL,在本地测试可以通过,但真正部署在服务器上的时候就不行了。比如你传给服务器一个:C:\Documents and Settings\Administrator\桌面\A.jpg,服务器会在它本地电脑上的路径:C:\Documents and Settings\Administrator\桌面\A中找图片A,这怎么可能嘛。所以,上次的实现方式就是一个失败的例子。
百度了很久,终于让我发现了一个jQuery插件:ajaxupload.js。 这边有示例:http://www.phpletter.com/Demo/AjaxFileUpload-Demo/
靠这个插件,终于实现了真正的AJAX异步上传图片。
其实就个插件的原理就是构建一个form,然后用POST的方式提交整个Form。在后台中,通过传递来的Form,得到HttpPostedFile,在获取其中的图片信息,这样就实现后台上传图片了。
一个简单的DEMO。
前台:
- <head runat="server">
- <title></title>
- <script src="Scripts/jquery-1.3.1.min.js" type="text/javascript"></script>
- <script src="Scripts/ajaxfileupload.js" type="text/javascript"></script>
- <script type="text/javascript">
- function ajaxFileUpload() {
- $.ajaxFileUpload
- (
- {
- url: 'handler/UploadImageHandler.ashx?userid=1&name=abc',
- secureuri: false,
- fileElementId: 'fileToUpload',
- dataType: 'html',
- beforeSend: function() {
- $("#loading").show();
- },
- complete: function() {
- $("#loading").hide();
- },
- success: function(data, status) {
- if (typeof (data.error) != 'undefined') {
- if (data.error != '') {
- alert(data.error);
- } else {
- alert(data.msg);
- }
- }
- },
- error: function(data, status, e) {
- alert(e);
- }
- }
- )
- return false;
- }
- </script>
- </head>
- <body>
- <form id="form1" runat="server">
- <table cellpadding="0" cellspacing="0" class="tableForm">
- <thead>
- <tr>
- <th>
- Ajax File Upload
- </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>
- <input id="fileToUpload" type="file" size="45" name="fileToUpload" class="input">
- </td>
- </tr>
- <tr>
- <td>
- Please select a file and click Upload button
- </td>
- </tr>
- </tbody>
- <tfoot>
- <tr>
- <td>
- <button class="button" id="buttonUpload" onclick="return ajaxFileUpload();">
- Upload</button>
- </td>
- </tr>
- </tfoot>
- </table>
- </form>
- </body>
- public class UploadImageHandler : IHttpHandler {
- public void ProcessRequest (HttpContext context) {
- //获取前台的FILE
- HttpPostedFile file = context.Request.Files["fileToUpload"];
- string path = "UploadImgs\\";
- //Bitmap map = new Bitmap(filePath);
- string fileName = Path.GetFileName(file.FileName);
- string mapPath = context.Server.MapPath("~");
- string savePath = mapPath + "\\" + path + fileName;
- //map.Save(savePath);
- file.SaveAs(savePath);
- //上传成功后显示IMG文件
- StringBuilder sb = new StringBuilder();
- sb.Append("<img id=\"imgUpload\" src=\""+path.Replace("\\","/")+fileName+"\" />");
- context.Response.Write(sb.ToString());
- context.Response.End();
- }
- public bool IsReusable {
- get {
- return false;
- }
- }
- }
0 0
- jQuery实现异步上传图片(二)
- jQuery实现异步上传图片(二)
- Jquery实现异步上传图片
- Jquery实现异步上传图片
- Jquery实现异步上传图片
- Jquery实现异步上传图片
- jquery异步上传图片
- jquery异步上传图片
- Jquery+uploadify异步上传图片
- jQuery + ashx 实现图片按比例预览、异步上传及显示
- jquery实现文件异步上传
- Ajax实现异步上传图片
- 异步上传图片实现思路
- javascript实现异步上传图片
- 异步上传图片—struts2+jQuery
- Jquery ajaxsubmit 异步上传图片 无刷新
- 最简单的jquery 异步上传图片
- struts2+jquery之form插件实现异步上传图片并显示
- Leetcode刷题日记<Binary Tree Postorder Traversal>
- STM32中的main函数入口
- 最优化:拟牛顿法、最速下降法、共轭梯度法、信赖域法、协同优
- Redis之利用锁机制来防止缓存过期产生的惊群现象
- [UVA11605] Lights inside a 3d Grid && 数学期望
- jQuery实现异步上传图片(二)
- 231 金山笔试题
- 通过经纬度获取城市名/地址(不需要三方包)
- 数据结构第一章框图
- 实习日记4
- hadoop2.4.1格式化文件系统
- 网易游戏面试--两次股票买入卖出的最大收益
- Maven安装与配置
- Struts2接收前台参数的几种形式