java get方式异步上传_java异步上传图片

第一步:引入需要的js

第二部:编写html页面

*

品牌名称:

*

上传商品图片(90x150尺寸):

注:该尺寸图片必须为90x150。

品牌描述:

排序:

是否可用:

可用

不可用

第三步:编写js代码模拟form表单上床图片、文件

//上传图片

function uploadPic(){

//定义参数

var options = {

url : "/upload/uploadPic.do",

dataType : "json",

type : "post",

success : function(data){

//回调 二个路径

//url

//path

$("#allImgUrl").attr("src",data.url);

$("#path").val(data.path);

}

};

//jquery.form使用方式

$("#jvForm").ajaxSubmit(options);

}

第四步:在springMVC中编写后台接受上上传的图片

/**

* 上传图片

* 商品

* 品牌

* @author lx

*

*/

@Controller

public class UploadController {

//上传图片

@RequestMapping(value = "/upload/uploadPic.do")

public void uploadPic(@RequestParam(required = false) MultipartFile pic,HttpServletResponse response){

//扩展名

String ext = FilenameUtils.getExtension(pic.getOriginalFilename());

//图片名称生成策略

DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");

//图片名称一部分

String format = df.format(new Date());

//随机三位数

Random r = new Random();

// n 1000 0-999 99

for(int i=0 ; i<3 ;i++){

format += r.nextInt(10);

}

/*下面是使用jersey把图片上传到另外一个tomcat,如果是一般保存图片,可以使用javaWEB中一般的方式,因为方法参数pic就是上传的图片或文件

//实例化一个Jersey

Client client = new Client();

//保存数据库

String path = "upload/" + format + "." + ext;

//另一台服务器的请求路径是?

String url = Constants.IMAGE_URL + path;

//设置请求路径

WebResource resource = client.resource(url);

//发送开始 POST GET PUT

try {

resource.put(String.class, pic.getBytes());

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

//返回二个路径

JSONObject jo = new JSONObject();

jo.put("url", url);

jo.put("path",path);

ResponseUtils.renderJson(response, jo.toString());

}

}

第五步:在spring-mvc.xml中配置上传文件的解析器

原文:http://www.cnblogs.com/rejoiceFromJesus/p/4694385.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中可以使用多线程或异步操作实现集合的异步刷新。 一种方法是使用Java的线程池来异步执行集合刷新操作。可以使用ExecutorService类来创建线程池,并将需要异步刷新的集合对象包装为Callable对象以便能够提交给线程池执行。在Callable对象的call()方法中执行集合刷新操作,然后将结果返回。 另一种方法是使用Java 8中的CompletableFuture类来异步执行集合刷新操作。可以使用CompletableFuture.supplyAsync()方法将需要异步刷新的集合对象包装为Supplier对象,然后在异步线程中执行集合刷新操作,并返回结果。可以使用CompletableFuture.thenAccept()方法在主线程中处理异步结果。 以下是一个示例代码: ```java import java.util.ArrayList; import java.util.List; import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Future; public class AsyncCollectionRefresh { private List<String> list = new ArrayList<>(); private ExecutorService executor = Executors.newSingleThreadExecutor(); public AsyncCollectionRefresh() { list.add("item1"); list.add("item2"); list.add("item3"); } public void refresh() { Callable<List<String>> callable = () -> { // Simulate refresh operation Thread.sleep(1000); List<String> newList = new ArrayList<>(); newList.add("item4"); newList.add("item5"); newList.add("item6"); return newList; }; Future<List<String>> future = executor.submit(callable); try { list = future.get(); System.out.println("List refreshed: " + list); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { AsyncCollectionRefresh asyncCollectionRefresh = new AsyncCollectionRefresh(); asyncCollectionRefresh.refresh(); } } ``` 该示例中,通过Callable对象异步执行集合刷新操作。在模拟的刷新操作中,新建了一个List对象,然后将其赋值给集合对象。最后在主线程中输出刷新后的集合内容。 另外,也可以使用Java 8中的Stream API来进行集合的异步处理。使用Stream.parallel()方法可以将集合转换为并行流,从而实现多线程并发处理。但这种方法不太适用于集合的刷新操作,因为它需要重新创建一个新的流对象。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值