vue文件下载及重命名

本文所讲的下载地址格式为:地址+文件名(例如:http...+ 'test.docx')

页面代码: 

<!--map为所下载的文件信息,包括文件名、路径等 -->
<p v-down="map">这是文件名</p>    

js代码: (在main.js中写入以下代码)  

注:方法一 前端不需要考虑跨域问题,后台设置允许就行

       方法二 单独设置文件名无效,默认下载文件名为上传服务器后所返回的地址里的命名(一般会为uuid的格式,非文件原名),若大家有解决方法可以留言给博主

let baseDownloadUrl = "http://192.xxx.x.xxx:8090/"; // 域名+端口号
// 添加自定义v-down指令
Vue.directive("down", {
  inserted: (el, binding) => {
    el.style.cssText = "cursor: pointer;";
    el.addEventListener("click", () => {
    //方法一
        var xz = new XMLHttpRequest();
        xz.open("GET", baseDownloadUrl + binding.value.path, true);
        xz.responseType = "blob";
        xz.onload = function (e) {
          var url = window.URL.createObjectURL(xz.response);
          var a = document.createElement("a");
          a.href = url;
          a.download = binding.value.fileName;
          a.click();
        };
        x.send();
    //方法二
      // let link = document.createElement("a"); // 创建a标签
      // link.style.display = "none";
      // link.href = baseDownloadUrl + binding.value.path; // 设置下载地址
      // link.setAttribute("download", binding.value.fileName); // 添加downLoad属性
      // link.setAttribute("target", "_blank");
      // document.body.appendChild(link);
      // link.click();
    });
  },
});

 

 

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 中实现文件重命名功能,可以通过以下步骤实现: 1. 创建一个文件列表组件,并在组件中绑定一个 `v-model`,用于绑定文件列表数据。 2. 在文件列表组件中创建一个方法,用于重命名文件。方法中需要传入两个参数:当前要重命名的文件对象和新的文件名。 3. 在文件列表组件中创建一个输入框,用于输入新的文件名,并绑定一个 `v-model`,用于双向绑定输入框的值。 4. 在文件列表组件中创建一个方法,用于显示输入框并设置默认值为当前文件名。方法中需要传入一个参数:当前要重命名的文件对象。 5. 在文件列表组件中创建一个方法,用于隐藏输入框。 6. 在文件列表组件中创建一个方法,用于保存修改后的文件名。方法中需要传入一个参数:当前要重命名的文件对象。 7. 在文件列表组件中渲染文件列表,并为每个文件对象绑定一个重命名方法和一个显示输入框的方法。 8. 在文件列表组件中渲染输入框,并为输入框绑定一个保存修改后的文件名的方法和一个隐藏输入框的方法。 示例代码如下: ```html <template> <div> <ul> <li v-for="file in files" :key="file.id"> {{ file.name }} <button @click="showInput(file)">重命名</button> <div v-if="file.showInput"> <input type="text" v-model="file.newName"> <button @click="save(file)">保存</button> <button @click="hideInput(file)">取消</button> </div> </li> </ul> </div> </template> <script> export default { data() { return { files: [ { id: 1, name: 'file1.txt', newName: '', showInput: false }, { id: 2, name: 'file2.txt', newName: '', showInput: false }, { id: 3, name: 'file3.txt', newName: '', showInput: false }, ] } }, methods: { rename(file, newName) { // 实现重命名功能 file.name = newName; }, showInput(file) { file.showInput = true; file.newName = file.name; }, hideInput(file) { file.showInput = false; file.newName = ''; }, save(file) { this.rename(file, file.newName); file.showInput = false; file.newName = ''; } } } </script> ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值