My RestPictureServices Class
@Service
@TestProfile
public class RestPictureServices implements SahaPictureServices {
@Autowired
private PictureRepository pictureRepository;
@Autowired
private DozerBeanMapper mapper;
@Override
public Collection<SahaPicture> pictures() {
// TODO Auto-generated method stub
return null;
}
@Override
public SahaPicture pictureOfSaha(Long sahaId) {
// TODO Auto-generated method stub
return null;
}
@Override
public SahaPicture save(SahaPicture picture) {
SahaPictureEntity pictureEntity=new SahaPictureEntity();
mapper.map(picture, pictureEntity);
pictureRepository.save(pictureEntity);
SahaPicture savedPicture=new SahaPicture();
mapper.map(pictureEntity, savedPicture);
return savedPicture;
}
@Override
public Boolean delete(Long id) {
// TODO Auto-generated method stub
return true;
}
@Override
public SahaPicture update(Long id, SahaPicture picture) {
// TODO Auto-generated method stub
return null;
}
}
My SahaPictureController class
@JsonRestController
@RequestMapping(path = "/saha/picture")
public class PictureController {
@Autowired
@Qualifier("restPictureServices")
private SahaPictureServices pictureServices;
@RequestMapping(method = RequestMethod.POST)
public SahaPicture singleSave(@RequestBody SahaPicture picture) {
return pictureServices.save(picture);
}
}
My PictureSahaRepository interface
public interface PictureRepository extends CrudRepository<SahaPictureEntity,Long> {
}
My picture Model class
public class SahaPicture {
private MultipartFile file;
//getter and setter methods
}
This is SahaPictureEntity class
@Entity
@Table(name="SahaPicture")
public class SahaPictureEntity {
@Id
@GeneratedValue
private Long id;
@Column
@Lob
private MultipartFile file;
//getter and setter methods
}
My JsonRestController Annotation
@RestController
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE)
@Retention(RetentionPolicy.RUNTIME)
public @interface JsonRestController {
}
My Services Interface
public interface SahaPictureServices {
Collection<SahaPicture> pictures();
SahaPicture pictureOfSaha(Long sahaId);
SahaPicture save(SahaPicture picture);
Boolean delete(Long id);
SahaPicture update(Long id, SahaPicture picture);
}
My Service Configuration Class using dozer mapping jar.
@Configuration
public class ServiceConfiguration {
@Bean
public DozerBeanMapper mapper() {
return new DozerBeanMapper();
}
}
如何使用rest full services Spring boot将文件或图像插入数据库。我正在尝试restfull服务以插入文件,但遇到错误
无法读取HTTP消息:org . spring framework . HTTP . converter . httpmessagenoretreadableexception:无法读取文档:数字值中的意外字符('-'(代码45)):减号后应为数字(0-9),以便在[Source:Java . io . pussbackinputstream @ 21 D5 ad7d;处获得有效的数字值。行:1,列:3];嵌套异常为com . faster XML . Jackson . core . jsonparseexception:数值中出现意外字符('-'(代码45)):减号后应为数字(0-9),以便在[Source:Java . io . pushback inputstream @ 21 D5 ad 7d;处获得有效的数值。第1行,第3列]
请求和响应如下图所示。
在此处输入图像描述
您需要创建一个包含MultipartFile参数的REST方法。该对象有一个getBytes()方法以及一个getInputStream()方法,您可以使用它来获取数据。然后,您可以创建对象并将其保存到存储库中。
看见https://spring.io/guides/gs/uploading-files/和http://www.concretepage.com/spring-4/spring-4-mvc-single-multiple-file-upload-example-with-tomcat作为如何使用Spring上载文件的良好参考。
以下是如何使用jQuery将文件上传到REST服务的前端示例。
var token = $("meta[name='_csrf']").attr("content");
var header = $("meta[name='_csrf_header']").attr("content");
$.ajax({
url: "/restapi/requests/replay/upload",
type: "POST",
beforeSend: function (request)
{
request.setRequestHeader(header,token);
},
data: new FormData($("#upload-file-form")[0]),
enctype: 'multipart/form-data',
processData: false,
contentType: false,
cache: false,
success: function () {
// Handle upload success
addText( "File uploaded successfully.")
},
error: function () {
// Handle upload error
addText( "File upload error.")
}
});
然后下面是Rest控制器的样子:
@RestController
public class ReplayRestController {
@Autowired
private ApplicationContext applicationContext;
@RequestMapping(value="/restapi/requests/replay/upload", method = RequestMethod.POST)
@ResponseBody
public ResponseEntity<?> processUpload(
@RequestParam("uploadfile") MultipartFile uploadfile,
@RequestParam("databaseWriteIdUpload") String databaseWriteId,
@RequestParam("recordsToUse")ReplayUpload.RecordsToUse recordsToUse
) {
try {
String fileName = uploadfile.getOriginalFilename();
if (databaseWriteId == null || "".equals(databaseWriteId)) {
databaseWriteId = fileName;
}
ReplayUpload replayUpload = applicationContext.getBean( ReplayUpload.class );
replayUpload.process( uploadfile.getInputStream(), databaseWriteId, recordsToUse );
}
catch (Exception e) {
System.out.println(e.getMessage());
return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
}
return new ResponseEntity<>(HttpStatus.OK); }
}
我正在使用Spring4.0为RESTfulWeb服务创建POC。如果我们只传递字符串或任何其他基本数据类型,它就可以正常工作。 这个很好用。但如果我想将字节流或文件对象传递给函数,我如何编写具有这些参数的函数?我如何编写提供传递字节流的客户端? 我尝试了这个代码,但是得到了415个错误。 客户端代码-使用apache HttpClient
最近遇到一个这样的需求:传一个压缩包给后台Linux服务器,后台保存后解压读取里面的文件,现学现做。在这里做个记录。 文件上传 文件上传有很多方法,这里推荐一个自己感觉挺好用的一种,代码奉上:
在我的项目中,我在后端有Spring Boot,在前端有React.js。 我的后端工作正常,我知道,因为我已经用Postman测试过了。 在上传文件的前端,我有一个名为 ,它看起来像这样: 但问题是每次上传都失败。也许原因是路径,不确定。我试图路径。我得到的是C:\fakepath\Screenshot(187). png 现在我的问题是,如果是因为路径,我怎么才能正确地做它(据我所知,浏览器不
1.接口描述 该API的功能是上传图片到云端。 图片要求 格式为 JPG(JPEG),BMP,PNG,GIF,TIFF 宽和高大于 8px,小于等于4000px 小于等于 5 MB 请求方式 POST 请求 URL https://cloudapi.linkface.cn/resources/upload_image 2.请求参数 字段 类型 必需 描述 api_id string 是 API
我正在尝试上传一个图像。当我从本地主机上进行时,它工作得很好,但当我发布它时,它从服务器上抛出一个错误: 当我使用此代码时: 错误为: System.io.DirectoryNotFoundException:找不到路径“d:\inetpub\vhosts\xx.com\httpdocs\images\sections\developer\clientlogo\demo.png”的一部分。在sys
是否可以使用server1将文件上传到server2? 访客请访问:我的网站。com(server1) 然后他将一个文件上传到server1,server1会自动将该文件上传到server2?? 或者简单地说,用户可以使用server1作为代理将文件上传到server2,因为server2只能从server1访问 会有帮助吗,还是有其他更好的解决方案?
我正在尝试通过REST API在服务器上上传文件。我的api请求FormData模型,但Im得到错误。 devtools中得“我得请求”得有效负载 ------WebKitFormBoundaryVpirgXMC3RU3AOFA内容-配置:表单-数据;name=“文件”;filename=“test.jpg”content-type:image/jpeg -----WebKitFormBounda
本文向大家介绍SpringMVC图片文件跨服务器上传,包括了SpringMVC图片文件跨服务器上传的使用技巧和注意事项,需要的朋友参考一下 图片文件跨服务器上传(我使用的公司云桌面作为上传服务器,自己的笔记本作为存储服务器测试的) 一、上传服务器: 1、pom文件(使用jersey插件) 2、前端页面: 3、后台controller: 二、存储图片文件服务器: 1、Tomcat的conf目录下的w