• asp.net跨域上传文件


    前端:

     1 <!DOCTYPE html>
     2 <html>
     3 <head>
     4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     5     <title></title>
     6 </head>
     7 <body>
     8     <input type="file" id="myphoto" />
     9     <div style="display:none" id="div_div1">
    10         <img src="#" id="img_myphoto" />
    11     </div>
    12 </body>
    13 </html>
    14 <script src="assets/js/jquery-1.7.1.js"></script>
    15 <script type="text/javascript">
    16     $("#myphoto").change(function () {
    17         var file = this.files[0];
    18         var formData = new FormData();
    19         formData.append('tFile', file);
    20         jQuery.support.cors = true;
    21         $.ajax({
    22             type: "POST", // 必须用post
    23             url: "http://118.200.100.100:8080/uploadStudentIDCard.ashx?studentID=100",
    24             crossDomain: true,
    25             data: formData,
    26             contentType: false,
    27             processData: false,
    28             success: function (data) {
    29                 if (data.result == 1) {
    30                     $("#img_myphoto").attr("src", "http://114.215.198.241:8086" + data.url);
    31                     $("#div_div1").show();
    32                 }
    33             },
    34             error: function (res) {
    35                 alert('shit');
    36             }
    37         });
    38     });
    39 </script>
    View Code

     后端:

      1 using JSXiangYu.JiSuJob.BLLFactory;
      2 using JSXiangYu.JiSuJob.IBLL;
      3 using JSXiangYu.JiSuJob.Utility;
      4 using System;
      5 using System.Collections.Generic;
      6 using System.Drawing;
      7 using System.IO;
      8 using System.Linq;
      9 using System.Web;
     10 
     11 namespace JSXiangYu.JiSuJob.WebApp.student.person
     12 {
     13     public class ResultData
     14     {
     15         public int _result;
     16         public string _msg;
     17     }
     18     /// <summary>
     19     /// uploadStudentIDCard 的摘要说明
     20     /// </summary>
     21     public class uploadStudentIDCard : IHttpHandler
     22     {
     23         IBLLSession bllSession = BLLSessionFactory.CreateBLLSession();//获取业务逻辑会话对象
     24         public void ProcessRequest(HttpContext context)
     25         {
     26             context.Response.ContentType = "Application/json";
     27             
     28             UploadStudentIDCard(context);
     29         }
     30 
     31         /// <summary>
     32         /// 上传学生证
     33         /// </summary>
     34         /// <param name="context"></param>
     35         private void UploadStudentIDCard(HttpContext context)
     36         {
     37             context.Response.AddHeader("Access-Control-Allow-Origin", "*");
     38             if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
     39             {
     40                 HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
     41                 HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type, Authorization, Accept,X-Requested-With");
     42                 HttpContext.Current.Response.End();
     43             }
     44 
     45             //1.采集数据
     46             //string kk = context.Request.Params["jsoncallback"];
     47             string studentIDStr = context.Request.Params["studentID"];//学生编号
     48             HttpPostedFile file = context.Request.Files["tFile"];//学生证
     49             //2.数据校验
     50             int studentID;
     51             if (!int.TryParse(studentIDStr, out studentID))
     52             {
     53                 context.Response.Write("{"result":2}");//学生编号格式有误(学生未登录)
     54                 context.Response.End();
     55                 return;
     56             }
     57             if (file == null)
     58             {
     59                 context.Response.Write("{"result":3}");//未上传学生证
     60                 context.Response.End();
     61                 return;
     62             }
     63 
     64             //3.处理业务逻辑
     65             //3.1处理存储文件的路径
     66             string fileName = Path.GetFileName(file.FileName);//文件的全名称
     67             string ext = fileName.Substring(fileName.LastIndexOf('.'));//文件的扩展名
     68             string dateBasePath;//保存身份证的相对路径
     69             string dateBasePath_m;//手机展示相对路径
     70             string path_m;//手机展示物理路径
     71             string guidStr = Guid.NewGuid().ToString() + ext;//图片名称用Guid命名
     72             //3.2物理路径
     73             string path = GetUploadFilePath(out dateBasePath, out dateBasePath_m, out path_m) + guidStr;//物理路径+文件全名称
     74             path_m += guidStr;//物理路径——手机端
     75             //3.3相对路径
     76             dateBasePath += guidStr;//相对路径+文件全名称
     77             dateBasePath_m += guidStr;//相对路径——手机端
     78             //3.4处理图片+上传图片
     79             Bitmap bmBig = new Bitmap(file.InputStream);
     80             FileExt.MakeThumbnail(bmBig, path, 1024, 600);
     81             Bitmap bmBig2 = new Bitmap(file.InputStream);
     82             FileExt.MakeThumbnail(bmBig2, path_m, 336, 240);
     83             //3.5判断学生账号是否存在
     84             IStudentServer _studentServer = bllSession.StudentServer;
     85             if (!_studentServer.IsExistStudentAccount(studentID))
     86             {
     87                 context.Response.Write("{"result":4}");//不存在该学生账号
     88                 context.Response.End();
     89                 return;
     90             }
     91             //3.6更新学生信息
     92             if (_studentServer.UpdateStudentInfoOfStudentIDCard(studentID, dateBasePath, dateBasePath_m))
     93             {
     94                 context.Response.Write("{"result":1,"url":"" + dateBasePath_m + ""}");//图片上传成功
     95                 context.Response.End();
     96                 return;
     97             }
     98             else
     99             {
    100                 context.Response.Write("{"result":0}");//图片上传失败
    101                 context.Response.End();
    102                 return;
    103             }
    104         }
    105 
    106 
    107         /// <summary>
    108         /// 处理保存学生证的路径
    109         /// </summary>
    110         /// <param name="newPath">相对路径</param>
    111         /// <returns>返回物理路径</returns>
    112         private string GetUploadFilePath(out string newPath, out string dateBasePath_m, out string path_m)
    113         {
    114             DateTime date = DateTime.Now;
    115             string tempPath = date.Year + "/" + date.Month + "/" + date.Day + "/";
    116 
    117             string oldPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "assets/img/student/studentIDCard/");//原始路径
    118             oldPath += tempPath;//压缩图片物理路径
    119 
    120             path_m = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "assets/img/student/studentIDCard_m/");//原始路径
    121             path_m += tempPath;//压缩图片物理路径——手机端
    122 
    123             if (!Directory.Exists(oldPath))
    124             {
    125                 Directory.CreateDirectory(oldPath);
    126             }
    127             if (!Directory.Exists(path_m))
    128             {
    129                 Directory.CreateDirectory(path_m);
    130             }
    131             newPath = "/assets/img/student/studentIDCard/" + tempPath;//压缩图片相对路径
    132             dateBasePath_m = "/assets/img/student/studentIDCard_m/" + tempPath;//压缩图片相对路径——手机端
    133             return oldPath;
    134         }
    135 
    136         public bool IsReusable
    137         {
    138             get
    139             {
    140                 return false;
    141             }
    142         }
    143     }
    144 }
    View Code
  • 相关阅读:
    jQuery横向手风琴
    jQuery宽屏游戏焦点图
    手风琴式相册图片展开效果
    鼠标悬停图片分享按钮动画
    jQuery水平滑动菜单
    jQuery图片水平滑动延迟加载动画
    jQuery悬浮焦点图宽屏
    jQuery自定义美化下拉框
    纯CSS3垂直动画菜单
    面向服务与微服务架构
  • 原文地址:https://www.cnblogs.com/fanyongjiu/p/5609707.html
Copyright © 2020-2023  润新知