上传文件 前台使用ajax+botton+隐藏file向后台传递MultipartFile 实现文件上传

现在的上传一般是使用框架进行上传,都快把最基本的的上传忘了,在这里写一个普通的上传复习一下

ayui.use('upload', function () {
var $ = layui.jquery
, upload = layui.upload;
// //普通文档上传
var uploadInst = upload.render({
elem: '#uploadsubsop'
, multiple: true
, url: '/uploadword/uploadwordsop'
, accept:"file"
, before: function (obj) {
这个是个前端框架自带的上传文件模板   这种上传已经很普遍了
来个究极简单的上传
 
这是前端 

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>file文件操作测试</title>
</head>
<body>

<input type="file" id="file1" name="file1" style="display:none">

<button type="button" id="gofile">上传文件</button>

</body>

<script src="https://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">

//提交后台
$("#gofile").on("click", function () {
$("#file1").click();
});
$("#file1").on("change", function () {
var formData = new FormData();
formData.append("files", $("#file1")[0].files[0]);
$.ajax({
type:'POST',
url:"/test/main/uploadfile",
data:formData,
contentType:false,
processData:false, 
// dataType:"json",
mimeType:"multipart/form-data",
success:function(data){
if(data=="true"){
alert("保存成功!");
}else{
alert("保存失败!");
}
}
});
}); 

</script>

</html>

后端
 

/**
* 上传
* @return
*/
@RequestMapping(value="/uploadfile",method = RequestMethod.POST)
@ResponseBody
public String uploadfile(@RequestParam("files") MultipartFile files) throws IOException{

return setFile(files)==true?"true":"false";
}
public boolean setFile(MultipartFile multipartFile) throws IOException {
boolean filetype=false;
try {
String packingId="9527";
String name = "";
if (multipartFile != null) {
name = multipartFile.getOriginalFilename();// 直接返回文件的名字
String subffix = name.substring(name.lastIndexOf(".") + 1, name.length());// 我这里取得文件后缀
String name1=name.substring(0,name.lastIndexOf(".")); // 原来文件的名字 保存到其他地方
String fileName = packingId + getDateFormat(new Date(), "YYYYMMDDHHMMSS");// 文件保存进来,我给他重新命名
String filepath = "D:\\file\\"+packingId;
File file = new File(filepath);
if (!file.exists()) {// 目录不存在就创建
file.mkdirs();
}
//这个方法就可以新增了
multipartFile.transferTo(new File(file + "\\" + fileName + "." + subffix));// 保存文件
}
filetype = true;
} catch (Exception e) {
System.out.println(e);
filetype = false;
return filetype;
}
return filetype;
}
/**
* 日期格式化
*
* @param date
* @param 格式类型
* @return
*/
public static String getDateFormat(Date date, String formatStr) {
if (!StringUtils.isEmpty(formatStr)) {
return new SimpleDateFormat(formatStr).format(date);
}
return null;
}

搞定啦 ~  当然这是建立在有下载环境的情况下

<!-- 加了这个才可以上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

 

<!-- 实现上传需要的jar -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.2</version>

</dependency>

 

 

转载于:https://www.cnblogs.com/Mr-Y1907/p/11270991.html

以下是一个使用 Vue、Axios 和 Element UI 的示例,演示如何实现表格数据的新增、编辑和删除操作: ```html <template> <div> <!-- 新增按钮 --> <el-button type="primary" @click="addData">新增</el-button> <!-- 表格 --> <el-table :data="tableData" style="width: 100%"> <!-- 列定义 --> <el-table-column prop="name" label="姓名"></el-table-column> <el-table-column prop="age" label="年龄"></el-table-column> <el-table-column label="操作"> <!-- 编辑按钮 --> <template slot-scope="scope"> <el-button type="primary" @click="editData(scope.row)">编辑</el-button> </template> </el-table-column> <el-table-column label="操作"> <!-- 删除按钮 --> <template slot-scope="scope"> <el-button type="danger" @click="deleteData(scope.$index)">删除</el-button> </template> </el-table-column> </el-table> <!-- 编辑/新增表单弹窗 --> <el-dialog :visible.sync="dialogVisible" title="编辑/新增数据" @close="resetForm"> <el-form :model="formData" label-width="80px"> <el-form-item label="姓名"> <el-input v-model="formData.name"></el-input> </el-form-item> <el-form-item label="年龄"> <el-input v-model.number="formData.age"></el-input> </el-form-item> </el-form> <span slot="footer" class="dialog-footer"> <el-button @click="dialogVisible = false">取消</el-button> <el-button type="primary" @click="saveData">保存</el-button> </span> </el-dialog> </div> </template> <script> import axios from 'axios'; export default { data() { return { tableData: [], // 表格数据 dialogVisible: false, // 编辑/新增表单弹窗显示状态 formData: { // 编辑/新增表单数据 name: '', age: 0 }, editIndex: -1 // 当前编辑的数据索引 }; }, mounted() { this.loadData(); }, methods: { // 加载表格数据 loadData() { axios.get('/api/data').then(response => { this.tableData = response.data; }).catch(error => { console.error(error); }); }, // 新增数据 addData() { this.dialogVisible = true; }, // 编辑数据 editData(row) { this.editIndex = this.tableData.indexOf(row); this.formData = Object.assign({}, row); this.dialogVisible = true; }, // 保存数据 saveData() { if (this.editIndex > -1) { // 编辑模式下保存数据 axios.put(`/api/data/${this.editIndex}`, this.formData).then(() => { this.loadData(); this.dialogVisible = false; }).catch(error => { console.error(error); }); } else { // 新增模式下保存数据 axios.post('/api/data', this.formData).then(() => { this.loadData(); this.dialogVisible = false; }).catch(error => { console.error(error); }); } }, // 删除数据 deleteData(index) { axios.delete(`/api/data/${index}`).then(() => { this.loadData(); }).catch(error => { console.error(error); }); }, // 重置表单 resetForm() { this.formData = { name: '', age: 0 }; this.editIndex = -1; } } }; </script> ``` 上述示例中,使用了 Element UI 的组件来构建表格和表单弹窗,通过 Axios 发送 HTTP 请求与后端进行数据交互。具体实现包括: 1. 使用 `el-table` 组件展示表格数据,每行包括姓名、年龄和编辑、删除操作按钮。 2. 点击新增按钮,弹出编辑/新增表单弹窗。 3. 编辑数据时,将当前行的数据复制到表单数据对象 `formData` 中,并打开编辑/新增表单弹窗。 4. 保存数据时,根据是否处于编辑模式选择发送 PUT 请求(编辑数据)或 POST 请求(新增数据)。 5. 删除数据时,发送 DELETE 请求。 6. 利用 `axios` 发送异步请求获取/保存/删除数据。 7. `mounted` 钩子函数中调用 `loadData` 方法加载初始数据。 请根据你的具体需求和后端接口进行适当的修改和调整。 希望这个示例能够帮助到你!如果你有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值