如何在RuoYi框架中实现文件及信息同步上传

如何在RuoYi框架中实现文件及信息同步上传

步骤

页面修改

	<div class="wrapper wrapper-content animated fadeInRight ibox-content">
        <form class="form-horizontal m" id="form-version-add" enctype="multipart/form-data">
            <div class="form-group">    
                <label class="col-sm-3 control-label">AppID:</label>
                <div class="col-sm-8">
                    <input name="appId" class="form-control" type="text">
                </div>
            </div>
            <div class="form-group">    
                <label class="col-sm-3 control-label">App类型:</label>
                <div class="col-sm-8">
                    <select name="appType" class="form-control m-b">
                        <option value="Android">Android</option>
                    </select>
                </div>
            </div>
            <div class="form-group">    
                <label class="col-sm-3 control-label">App名称:</label>
                <div class="col-sm-8">
                    <input name="appName" class="form-control" type="text">
                </div>
            </div>
            <div class="form-group">    
                <label class="col-sm-3 control-label">App版本:</label>
                <div class="col-sm-8">
                    <input name="appVersion" class="form-control" type="text">
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-3 control-label">App版本信息:</label>
                <div class="col-sm-8">
                    <textarea name="versionInfo" class="form-control"></textarea>
                </div>
            </div>
            <div class="form-group">    
                <label class="col-sm-3 control-label">APP</label>
                <div class="col-sm-8">
                    <input id="appFile" name="file" class="form-control" type="file" required>
                </div>
            </div>
        </form>
    </div>
    <script th:inline="javascript">
        var prefix = ctx + "system/version"
        $("#form-version-add").validate({
            focusCleanup: true
        });

        function submitHandler() {
            if ($.validate.form()) {
                var data = new FormData();
                data.append("appId",$('input[name="appId"]').val());
                data.append("appType",$('select[name="appType"] option:selected').val());
                data.append("appName",$('input[name="appName"]').val());
                data.append("appVersion",$('input[name="appVersion"]').val());
                data.append("versionInfo",$('textarea[name="versionInfo"]').val());
                data.append('file',document.getElementById('appFile').files[0]); //这里为将文件添加到数据集合里面(只测试过单文件上传,多文件上传需自己进行整理)
                $.operate.saveFormFile(prefix + "/add", data);
            }
        }
    </script>

在ruoyi.js追加文件上传的AJAX方法

			saveFormFile: function(url, data, callback) {
				var config = {
					url: url,
					type: "post",
					dataType: "json",
					cache: false,
					processData: false,//用于对data参数进行序列化处理 这里必须false
					contentType: false, //必须
					data: data,
					beforeSend: function () {
						$.modal.loading("正在处理中,请稍后...");
						$.modal.disable();
					},
					success: function(result) {
						if (typeof callback == "function") {
							callback(result);
						}
						$.operate.successCallback(result);
					}
				};
				$.ajax(config)
			},

后台接口

	@PostMapping("/add")
    @ResponseBody
    public AjaxResult addSave(AppVersion appVersion, MultipartFile file)
    {
        try{
           //这里替换自己的文件上传及信息保存逻辑即可
        }catch (Exception e){
            e.printStackTrace();
            return AjaxResult.error("信息保存错误");
        }

        return AjaxResult.success();
    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RuoYi 框架实现文件下载可以通过以下步骤进行: 1. 在控制器定义一个方法来处理文件下载请求。可以使用`@RequestMapping`或`@GetMapping`等注解来匹配请求的URL。 2. 创建一个`File`对象,指定要下载的文件的路径。 3. 使用`InputStreamResource`将文件包装成输入流的形式。 4. 设置响应的内容类型和头信息,以告知浏览器下载文件。 5. 将文件输入流写入响应的输出流,完成文件下载。 下面是一个简单的示例代码: ```java @Controller @RequestMapping("/file") public class FileController { @GetMapping("/download") public ResponseEntity<InputStreamResource> downloadFile() throws IOException { String filePath = "/path/to/your/file"; // 替换为实际的文件路径 File file = new File(filePath); HttpHeaders headers = new HttpHeaders(); headers.add("Content-Disposition", "attachment; filename=" + file.getName()); InputStreamResource resource = new InputStreamResource(new FileInputStream(file)); return ResponseEntity.ok() .headers(headers) .contentType(MediaType.APPLICATION_OCTET_STREAM) .body(resource); } } ``` 在上述示例,我们使用`File`类来指定要下载的文件路径,然后创建一个`InputStreamResource`来将文件包装成输入流形式。接下来,我们设置响应的内容类型为`application/octet-stream`,并设置响应头信息的`Content-Disposition`来告知浏览器下载文件。最后,将文件输入流写入响应的输出流,返回`ResponseEntity`对象。 记得替换示例代码文件路径为你实际的文件路径。当访问`/file/download`时,就会触发文件下载操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值