js + java文件下载

js请求:

// 下载图片
    function oDownLoad(url, filename) {
        var url = '${pageContext.request.contextPath}/file/downFile.do?url=' + url + '&filename=' + encodeURI(filename);
        window.location.href = url;
    }

 

java后端:

@RequestMapping(value = "/downFile.do", method = RequestMethod.GET)
    public void downPicture(HttpServletRequest request, HttpServletResponse response) throws Exception {
        InputStream in = null;
        String url = request.getParameter("url");
        String filename = request.getParameter("filename");
        //filename = java.net.URLDecoder.decode(filename, "UTF-8");
        filename = new String(filename.getBytes("GB2312"),"iso-8859-1");
        try {
            URL httpUrl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection)httpUrl.openConnection();
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(100000);// 连接超时单位毫秒 //
            conn.setReadTimeout(200000);// 读取超时 单位毫秒
            conn.setDoInput(true);
            conn.setDoOutput(true);
            conn.setUseCaches(false);
            conn.connect();

            in = conn.getInputStream();

            byte[] bs = new byte[1024];
            int len = 0;
            response.reset();

            response.setHeader("Pragma", "no-cache");
            response.setHeader("Cache-Control", "no-cache");

            response.setContentType("application/octet-stream");
            response.setHeader("Content-disposition", "attachment;filename=" + filename);

            ServletOutputStream out = response.getOutputStream();
            while ((len = in.read(bs))!= -1){
                out.write(bs,0,len);
            }

            out.flush();
            //关流
            out.close();
        }catch (Exception e){
            throw new RuntimeException(url + "下载失败");
        }finally {
            try{
                in.close();
            }catch (Exception e){
            }
        }
        
    }

 

转载于:https://www.cnblogs.com/lovedaodao/p/11454293.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript和Java中实现拍照上传,我们可以采用不同的方式来处理。 对于JavaScript,我们可以使用浏览器的Web API来实现拍照功能。具体步骤如下: 1. 使用`navigator.mediaDevices.getUserMedia`方法获取用户的媒体设备权限,包括摄像头和麦克风。 2. 使用`navigator.mediaDevices.getUserMedia`返回的Promise对象,获取到媒体流(MediaStream)。 3. 将媒体流(MediaStream)传递给`<video>`标签的`srcObject`属性,通过`<video>`标签显示摄像头的实时画面。 4. 在`<video>`标签初次渲染出摄像头画面后,可以使用`canvas`来将`<video>`标签中的内容绘制到画布上。 5. 绘制完画布后,可以使用`canvas`的`toDataURL`方法将画布中的内容转换成DataURL,形式如`data:image/png;base64,xxxx`。 6. 将DataURL作为参数传递给后端,完成图片的上传。 对于Java,我们可以使用Java的图形库来实现拍照功能。具体步骤如下: 1. 使用Java的图形库(例如AWT或JavaFX)创建一个窗口。 2. 在窗口中添加一个摄像头实时画面的显示区域。 3. 使用Java的图形库通过访问摄像头,获取实时画面。 4. 将实时画面显示在窗口中的显示区域上。 5. 提供一个拍照按钮,点击按钮后,将当前的实时画面保存为图片文件。 6. 将保存的图片文件上传到服务器。 总的来说,无论是JavaScript还是Java,我们都可以通过调用相应的API来访问摄像头,获取实时画面,并进行拍照操作。然后,将拍摄的照片转换成合适的格式,并上传到服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值