これは私のために働くために私に二日間かかった!
クライアント(角度):
$scope.saveForm = function () {
var formData = new FormData();
var file = $scope.myFile;
var json = $scope.myJson;
formData.append("file", file);
formData.append("ad",JSON.stringify(json));
var req = {
url: '/upload',
method: 'POST',
headers: {'Content-Type': undefined},
data: formData,
transformRequest: function (data, headersGetterFunction) {
return data;
}
};
スプリング(ブート):
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public @ResponseBody
Advertisement storeAd(@RequestPart("ad") String adString, @RequestPart("file") MultipartFile file) throws IOException {
Advertisement jsonAd = new ObjectMapper().readValue(adString, Advertisement.class);
あなたはあなたの@RequestPartに param名を与えていませんか?
public @ResponseBody ActivityTemplate createActivityTemplate(
@RequestPart("activityTemplate") ActivityTemplate activityTemplate, @RequestPart("file") MultipartFile jarFile)
{
}
注意:クラスパスにjackson mapper .jar( JsonをActivityTemplateにマップする )ファイルをインクルードすることを忘れないでください。
デフォルトのコンテンツタイプは 'application / octet-stream'です。 jarファイルとJSONをアップロードしているので、次のようにコンテンツタイプを@RequestMappingアノテーションに設定する必要があります。
@RequestMapping(value="/create", method=RequestMethod.POST, headers="content-type=application/json,application/java-archive")
これはあなたを助けてくれるかもしれませんが、MultipartFileを受け取っている間は、リクエストヘッダーのcontent-typeを "multipart / form-data"に設定し、コントローラのuse consumes = "multipart / form-data"コントローラ内。
JSONデータを受け取る場合は、JSONStringの形式で要求を送信し、jsonstringを受け取り、後でjsonオブジェクト形式に変換してから、そのオブジェクトを自分の操作に使用します。
以下のコードを確認してください:
@RequestMapping(value="/savingImg", method=RequestMethod.POST,
consumes="multipart/form-data", produces="application/json")
public ResponseEntity<?> savingAppIMgDtlss(
@RequestParam(value="f1", required = false) MultipartFile f1 ,
@RequestParam(value="f2", required = false) MultipartFile f2 ,
@RequestParam(value="f3", required = false) MultipartFile f3 ,
@RequestParam(value="f4", required = false) MultipartFile f4 ,
@RequestParam(value="f5", required = false) MultipartFile f5 ,
@RequestParam(value="f6", required = false) MultipartFile f6 ,
@RequestParam(value="f7", required = false) MultipartFile f7 ,
@RequestParam(value="f8", required = false) MultipartFile f8 ,@RequestParam("data") String jsonString)
throws Exception , ParseException {
try{
JSONObject gstcTranObj = new JSONObject();
net.sf.json.JSONObject jsonDtls = net.sf.json.JSONObject.fromObject(jsonString);
System.out.println("f1::"+f1.getOriginalFilename());
System.out.println("f2::"+f2.getOriginalFilename());
System.out.println("f3::"+f3.getOriginalFilename());
System.out.println("f4::"+f4.getOriginalFilename());
System.out.println("f5::"+f5.getOriginalFilename());
System.out.println("f6::"+f6.getOriginalFilename());
System.out.println("f7::"+f7.getOriginalFilename());
System.out.println("f8::"+f8.getOriginalFilename());
} catch (Exception e) {
e.printStackTrace();
return new ResponseEntity<>("Failed",HttpStatus.NOT_FOUND);
}finally{
}
return new ResponseEntity<>("Success", HttpStatus.OK);
}
}