2017-02-22 19 views
-1

Когда я разрабатывал файл для загрузки api, мне почти ничего не удалось заставить его работать на странице html. Я много искал. На некоторых страницах я обнаружил, что некоторые говорят о невозможности загрузки с помощью ajax. Но я делаю это с помощью ajax. Сначала конвертируйте файл в base64, а затем используйте этот кусок кода в качестве промежуточного продукта, это создаст тэг anchor и щелкнет ваш элемент wrok для любого файла, такого как doc, docx, xls, xlsx, mp3, mp4 .... он может загрузить любой файл.Загрузить любой файл с помощью jquery ajax

$(".filled-in").click(function(e) { 
    var _this=$(this); 
    $file = $(this).attr('id'); 
    $.ajax({ 
     type: "POST", 
     url: {!! json_encode(url('/download')) !!}, data: { 
      '_token' : $("input[name='_token']").val(), 
      'file' : $file 
     }, 
     dataType : "json", 
     success : function(json) { 
      var element = document.createElement('a'); 
      var fl='data:' + header_content +';charset=utf-8;base64,' +json.content; 
      element.setAttribute('href', fl); 
      element.setAttribute('download', $file_org_name); 
      element.click(); 
     } 
    }); 
}); 
+4

Что именно вы спрашиваете? –

+0

Могу ли я спросить, какой язык вы используете для создания с помощью вашего API? –

ответ

1

NodeJS

const express = require('express') 
 
    ,app = express() 
 
; 
 
app.get('/download/:file*?', (req,res) => { 
 

 
    // Magic 
 
    ... 
 
    // Redirect your user to the file path, and let them download the file 
 
    res.download(`${__dirname}/${filePath}`); 
 
});

JavaScript

// Some kind of click event ¯\_(ツ)_/¯ 
 
buttonIGuess.addEventListener('click', e => { 
 
    // Create a invisible iframe for the file downloading 
 
    const iframeElement = document.createElement('iframe'); 
 
    // Set the source to your API and as well as the file path 
 
    iframeElement.src = 'https://pony.com/download/rainbow_dash.png'; 
 
}); 
 
// It should work, if is work :P

 Смежные вопросы

  • Нет связанных вопросов^_^