Delphi使用TNetHTTPClient上传文件java接收测试
  Y8XIq1u6ceQW 2023年11月14日 27 0

Delphi使用TNetHTTPClient上传文件java接收测试

上传客户端

新建一个应用,拖入一个TButton按扭,一个TMemo多行文件显示框,一个TNetHttpClient,一个OpenDialog文件打开对话框。

Delphi使用TNetHTTPClient上传文件java接收测试_TNetHttpClient

双击按扭添加代码 

  uses    System.Net.Mime ;

procedure TForm1.Button1Click(Sender: TObject);
var
  formData: TMultipartFormData;
  AResponseContent: TStringStream;
begin

  if OpenDialog1.Execute then
  begin

    formData := TMultipartFormData.Create;
    AResponseContent := TStringStream.Create('', TEncoding.GetEncoding(65001));
    try
      formData.AddFile('file1', OpenDialog1.FileName);
      with self.NetHTTPClient1 do
      begin
        ConnectionTimeout := 2000; 
        ResponseTimeout := 10000; 
        AcceptCharSet := 'utf-8';
        AcceptEncoding := '65001';
        AcceptLanguage := 'zh-CN';
        ContentType := 'multipart/form-data';
        UserAgent := 'Embarcadero URI Client/1.0';
        try
          Memo1.Lines.Add('上传文件 ' + OpenDialog1.FileName);
          Post('http://localhost:9001/filesrv/file/upload', formData, AResponseContent);
          Application.ProcessMessages;
        except
          on E: Exception do             
              Memo1.Lines.Add('上传失败:' + E.Message);
        end;
        Memo1.Lines.Add(AResponseContent.DataString);
      end;

    finally

      AResponseContent.Free;
      formData.Free;
    end;

  end;

end;


java接收端

package com.lyg.file.controller;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
@Controller
@RequestMapping(value = "/file")
public class MainController {
    private final static Logger log = LoggerFactory.getLogger( MainController.class);
    @Value("${filepath.path-images}")
    private String path_images;
    //文件上传
    //参数为file1
    @RequestMapping("/upload")
    @ResponseBody
    protected JSONObject uploadTest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, Exception {
        log.info("upload begin......");
        JSONObject jsonResult=new JSONObject();
        jsonResult.put("code","0000");
        jsonResult.put("message","失败,未知错误!");
        try {
            // 获取文件部件part
            MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
            // 获得文件:
            MultipartFile part = multipartRequest.getFile("file1");
            // 获取文件服务器头部信息
            // String root = request.getRealPath("/upload");
            //String root = Consts.FILE_PATH_HT_IMAGES;
            String root =  path_images;
            File file = new File(root);
            // 如果文件夹不存在则创建
            if (!file.exists() && !file.isDirectory()) {
                // System.out.println("文件夹不存在!");
                file.mkdir();
            } else {
                // System.out.println("文件夹已存在!");
            }
            String name = part.getOriginalFilename();
            String ext = name.substring(name.lastIndexOf("."), name.length());
            long currentTime = System.currentTimeMillis();
            SimpleDateFormat formatter = new SimpleDateFormat("yyMMddHHmmssSSS");
            Date date = new Date(currentTime);
            String dateStr = formatter.format(date);
            // String filename = dateStr+"."+ext;
            String filename = root + "\\" + dateStr + ext;
            part.transferTo(new File(filename));
            jsonResult.put("code","0001");
            jsonResult.put("message","上传成功.");
            log.info("上传成功");
        } catch (Exception e) {
            log.info("上传失败");
            log.error(e.getMessage(), e);
        }
        log.info(jsonResult.toString());
        return jsonResult;
    }
}

测试验证成果

Delphi使用TNetHTTPClient上传文件java接收测试_delphi_02

Delphi使用TNetHTTPClient上传文件java接收测试_java_03

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  3I1N9ysrcSyk   2023年12月08日   31   0   0 javahapi数据交换
  DF5J4hb0hcmT   2023年12月07日   50   0   0 javaArthas
Y8XIq1u6ceQW