form表单提交后台getOriginalFilename取不到file文件名

开发遇到问题,前端new FormData();用append添加属性,上传图片file文件时,服务端(java)取不到图片的文件名,导致报错。file为blob格式,如果是file格式不会报错。

js代码

var param = new FormData();  // 创建form对象
param.append('imagedata', file);//图片file文件

java代码

String fileName = file.getOriginalFilename();

在这里插入图片描述
起初我一直在找ios手机系统问题和base64转file文件问题,原谅我这个前端不懂后台,getOriginalFilename取不到filename参数。加上后台的帮忙,定位到了问题所在。new FormData(),append属性的时候,对于file是可以添加三个参数的,上代码!

var param = new FormData();
param .append('imagedata', file,new Date().getTime() + ".jpg");

new FormData();是可以添加第三个参数的。具体可以参考
https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/append

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,使用form表单提交文件到后端,可以按照以下步骤操作: 1. 在前端HTML页面中,使用form标签定义一个表单,设置enctype属性为"multipart/form-data",表示表单数据包含文件上传的二进制数据。 2. 在表单中添加一个input标签,设置type属性为"file",表示上传文件的输入框。 3. 在表单中添加一个submit按钮,点击时提交表单数据到后端。 4. 在后端接收表单数据时,需要使用相应的框架或库进行解析和处理。比如使用express框架时,可以使用multer中间件处理文件上传,代码如下: ``` const express = require('express'); const multer = require('multer'); const app = express(); // 配置multer中间件处理文件上传 const storage = multer.diskStorage({ destination: function (req, file, cb) { cb(null, 'uploads/') // 上传文件保存的目录 }, filename: function (req, file, cb) { cb(null, Date.now() + '-' + file.originalname) // 上传文件保存的文件名 } }) const upload = multer({ storage: storage }) // 处理文件上传的请求 app.post('/upload', upload.single('file'), (req, res) => { console.log(req.file) // req.file包含上传的文件信息 res.send('文件上传成功!') }) app.listen(3000, () => { console.log('服务器已启动...') }) ``` 以上代码中,通过multer.diskStorage()方法配置文件上传的保存目录和文件名,然后使用multer()方法创建一个中间件upload,用于处理文件上传的请求。在app.post()方法中,使用upload.single()方法指定上传文件的字段名,然后在回调函数中输出req.file对象,该对象包含上传文件的信息。最后使用res.send()方法返回上传成功的消息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

请叫我大豆包

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值