ajaxFileUpload上传图片

###首先引入ajaxFileUpload插件
然后:

//上传图片
function uploads(){
   var imgSrc = '', imgArr = [], strSrc = '' ;
   var file = document.getElementById("imgFile");
   var browser=navigator.appName;
   var b_version=navigator.appVersion;
   var version=b_version.split(";");
   var trim_Version=version[1].replace(/[ ]/g,"");
   if(browser=="Microsoft Internet Explorer" && (trim_Version=="MSIE8.0"||trim_Version=="MSIE9.0")){
     imgSrc = file.value ;
     imgArr = imgSrc.split('.') ;
     strSrc = imgArr[imgArr.length - 1].toLowerCase() ;
     if(strSrc.localeCompare('jpg') === 0 && strSrc.localeCompare('jpeg') === 0 && strSrc.localeCompare('JPG') === 0 && strSrc.localeCompare('JPEG') === 0&& strSrc.localeCompare('bmp') === 0&& strSrc.localeCompare('gif') === 0&& strSrc.localeCompare('png') === 0){
          alert("图片类型必须是.bmp,.gif,.jpg,.jpeg,.png中的一种");
          document.getElementById("imgFile").value = null;
          return false;
      }else if(strSrc===0){
          alert("请上传图片");
          return false;
     }
}else{
    var fileSize = file.files[0].size;
    var fname=file.files[0].name;
    if(fileSize > 5242880){
        alert("上传文件不能超过5M");
        document.getElementById("imgFile").value = null;
        return false;
    }else{
        if(fname==""){
           alert("请上传图片");
           return false;
        } else {
           if(!/\.(jpg|jpeg|JPG|JPEG|bmp|gif|png)$/.test(fname)) {
	           alert("图片类型必须是.bmp,.gif,.jpg,.jpeg,.png中的一种");                               document.getElementById("imgFile").value = null;
             return false;
          }
       }
   }
}

$.ajaxFileUpload({
     url:"http://upload.wajiu.com/image/uploadImage",
     data: { imageType:"returnOrder"},
     async : false,
     fileElementId:'imgFile',     //文件选择框的id属性
     dataType:'json',     //服务器返回的格式,可以是json或xml等
     success:function(data, status){//服务器响应成功时的处理函数
        if(data[0] == "success"){    
          //0表示上传成功(后跟上传后的文件路径),1表示失败(后跟失败描述)
          var html=' <div class="img-upload"><span class="imgCover"><img src="'+data[1]+'"/></span><span class="deleteImg color-blue" onclick="deleteImg(this);">删除</span></div>';
          $("#showPic").append(html);
          uploadImgNumber();
        }else{
          if(data[0] == "error"){
            alert("图片上传失败,请重试!");
          }
       }
    },
    error:function(data, status){ //服务器响应失败时的处理函数
      if(status == "error"){
          alert("图片上传失败,请重试!");
      }
    }
 });
}

 //点击上传图片
 $("#grMain-ph").on("change",'#imgFile', function () {
     uploads();
 });

//html

<input type="file" name="myfiles" class="imgFile" id="imgFile"/>
AOP(Aspect-Oriented Programming,面向切面编程)是一种用于将横切关注点从业务逻辑中分离出来的技术。通过自定义注解结合AOP可以很方便地实现诸如日志记录、权限检查等功能。 ### 使用 AOP自定义注解记录日志 #### 实现步骤: 1. **创建自定义注解** 定义一个注解,例如 `@LogAnnotation`,用来标记需要记录日志的方法。 ```java @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface LogAnnotation { String description() default "默认描述"; } ``` 2. **配置 AOP 切面** 创建一个切面类,并在其中拦截被标注了该注解的方法,在方法执行前或执行后插入日志处理逻辑。 ```java @Aspect @Component public class LogAspect { private static final Logger logger = LoggerFactory.getLogger(LogAspect.class); // 拦截所有使用了 @LogAnnotation 注解的方法 @Around("@annotation(logAnnotation)") public Object logExecutionTime(ProceedingJoinPoint joinPoint, LogAnnotation logAnnotation) throws Throwable { long start = System.currentTimeMillis(); try { return joinPoint.proceed(); // 执行目标方法并返回结果 } finally { long executionTime = System.currentTimeMillis() - start; Signature signature = joinPoint.getSignature(); StringBuilder sb = new StringBuilder("Method "); sb.append(signature.toShortString()) .append(" executed in ") .append(executionTime) .append(" ms.") .append("\nDescription: ") .append(logAnnotation.description()); logger.info(sb.toString()); // 记录日志信息 } } } ``` 3. **应用注解到业务方法** 将自定义注解添加至希望监控其运行情况的服务层方法上即可触发相应的日志行为。 ```java @Service public class UserService { @LogAnnotation(description="查询用户基本信息") public void queryUserInfo(String userId){ // 具体操作... } } ``` 4. **测试验证功能是否正常工作** --- ### 注意事项 - 确保项目已经引入 Spring 的依赖并且支持 AOP 功能; - 自定义注解属性可以根据需求设计得更为丰富如指定级别等; - 日志输出位置也可以进一步优化为数据库存储或者其他形式保存下来便于后续分析;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值