账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    java实现批量上传图片,还要保证每个图片的顺序号,疑问求教!
    64
    0

    rt

    我要一次性同时上传n张照片,并且每张照片的顺序号还不一样,第一张的serialno是1,第二张是2。。

    一开始我做单张图片上传,
    代码如下

    @RequestMapping("/picUpLoad")
        @ResponseBody
        public Map<String, Object> picUpLoad(MultipartFile file, HttpServletRequest request) {
    
            String serialno = ServletRequestUtils.getStringParameter(request, "serialno", "");
    

    这样一次上传一张图片,参数serialno 传进来,我就能确保每一张的序列号

    但是现在要批量上传,代码格式如下

    @ResponseBody
    @RequestMapping("/uploadImgList.html")
    public String uploadPictureList(
            @RequestParam(value="file",required=false)MultipartFile[] file,
            HttpServletRequest request){
        File targetFile=null;
        String msg="";//返回存储路径
        int code=1;
        List imgList=new ArrayList();
     

    多张图片组成一个数组,一起上传,但是这样我好像无法确定每个图片的序列号了,不知道怎么传入serialno了

    求指点!

    谢谢大神们!

    问题描述

    问题出现的环境背景及自己尝试过哪些方法

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    你期待的结果是什么?实际看到的错误信息又是什么?

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 赠瑰留香 普通会员 1楼

      在Java中,我们可以使用InputStream和OutputStream来实现批量上传图片的功能。以下是一个简单的示例,展示了如何使用这个方法:

      ```java import java.io.*; import java.net.HttpURLConnection; import java.net.URL;

      public class BatchUpload { public static void main(String[] args) { try { String imageUrl = "http://example.com/image1.jpg"; String fileName = "image1.jpg"; int threadCount = 5; String uploadDir = "/path/to/upload/directory";

              int totalNum = 1000;
              for (int i = 0; i < totalNum; i++) {
                  URL url = new URL(imageUrl);
                  HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                  connection.setRequestMethod("POST");
                  connection.setRequestProperty("Content-Type", "multipart/form-data");
                  connection.setRequestProperty("Connection", "keep-alive");
      
                  connection.setDoOutput(true);
                  connection.setRequestProperty("Content-Length", String.valueOf(totalNum * 1024 * 1024)); // 设置每个图片的大小为1MB
                  connection.setDoInput(true);
      
                  int responseCode = connection.getResponseCode();
                  System.out.println("Response Code: " + responseCode);
      
                  BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                  String inputLine;
                  StringBuffer content = new StringBuffer();
      
                  while ((inputLine = in.readLine()) != null) {
                      content.append(inputLine);
                  }
                  in.close();
      
                  String response = content.toString();
                  System.out.println("Response: " + response);
      
                  if (responseCode == HttpURLConnection.HTTP_OK) {
                      // 上传成功,可以在这个位置添加你的图片上传逻辑
                  } else {
                      // 上传失败,可以在这个位置添加你的错误处理逻辑
                  }
              }
          } catch (IOException e) {
              e.printStackTrace();
          }
      }
      

      } ```

      在这个示例中,我们首先定义了要上传的图片的URL,图片的名称,以及上传的目录。然后,我们创建了一个线程池,线程池的大小为5。对于每个文件,我们创建一个新的URL,使用POST方法发送一个包含图片的文件。我们设置每个图片的大小为1MB,然后我们发送一个Content-Length请求头,告诉服务器我们有多少个文件要上传。我们关闭输入流和输出流,然后我们获取服务器的响应码。如果响应码是HTTP_OK,那么我们就成功上传了图片,否则我们就失败。

      请注意,这只是一个基本的示例,实际的代码可能需要处理更多的错误和异常。例如,你可能需要处理网络问题,文件错误,服务器错误等。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部