js实用工具-文件上传下载

157 阅读1分钟
  • 文件上传
/**
 * 功能:解决文件手动上传的问题
 * 参数:
 *    http:发送ajax请求
 *    baseUrl:公共的URL地址
 *    obj:参数集合
 *        url:接口请求地址
 * 返回值:
 *    res:200的返回值
 *    err:200的返回值      
 *      
 */
function formDataUpData(http, baseUrl, obj) {
  //set增加数据的时候会覆盖,form中是允许相同的name的
  //append增加数据的时候不会覆盖,form中是允许相同的name的
  //delete删除数据的
  //get/getAll获取对用key值的数据
  let formData = new FormData();
  for (let [key, value] of Object.entries(obj)) {
    if (key != 'url') {
      formData.append(key, value);
    }
  }
  let headers = {};
  headers['Content-Type'] = 'multipart/form-data';
  return new Promise((resolve, reject) => {
    http({
      method: 'post',
      url: baseUrl + obj.url,
      data: formData,
      headers: headers
    }).then(res => {
      resolve(res)
    }).catch(err => {
      reject(err)
    })
  })
}
  • 文件下载
/**
 * 功能:文件下载
 * 参数:
 *    fileName:文件名称
 *    URL:下载地址
 *    target:打开方式(当前页面打开:默认/新页面打开)
 * 返回值:无
 * 注意点:download属性只能在同域名下才能生效不然无效
 */

function downloadFile(filename, URL, target) {
  let DownloadLink = document.createElement('a');
  DownloadLink.style = 'display: none';
  DownloadLink.target = target || '_self';
  DownloadLink.download = filename;
  DownloadLink.href = URL;
  document.body.appendChild(DownloadLink);
  DownloadLink.click();
  document.body.removeChild(DownloadLink);
}