Невозможно загрузить и переименовать изображение jpg. Вместо этого он загружает поврежденный файл jpg, поэтому, если вы измените расширение на «.txt», вы увидите там путь к изображению.
Исходный код, с которым я работал, был следующий:
function downloadImg(id){
var deferred = $q.defer();
$http({
method: 'GET',
url: API_URL + 'image/' + id
}).then(function(res){
console.log(res.data);
if(res.data && res.data.length > 0){
window.location.href = res.data;
}
deferred.resolve();
}, function(err){
console.log(err);
deferred.reject();
})
return deferred.promise;
}
Итак, я просто хочу переименовать изображение до или после его загрузки.
Я получаю этот код, и единственное, что мы делаем, это устанавливаем путь к изображению в файл или, в данном случае, [объектный объект] в файле (в зависимости от того, какой код я использую, я заканчиваю с объектом ... или путь к изображению ...).
function downloadImg(id){
var deferred = $q.defer();
$http({
method: 'GET',
url: API_URL + 'image/' + id,
responseType: 'blob'
}).then(function(res){
console.log(res.data);
var file = new Blob([res], {type: 'image/jpeg;charset=UTF-8'});
var fileURL = URL.createObjectURL(file);
var a = document.createElement("a");
a.href = fileURL;
a.download = "newName.jpg";
a.click();
deferred.resolve();
}, function(err){
console.log(err);
deferred.reject();
})
return deferred.promise;
}
Также я попытался установить responseType:'arraybuffer'
и blob
, а также попытался использовать FileSaver.saveAs
и попытался создать BLOB-объект из base64, найденный по адресу: http://stackoverflow.com/questions/16245767/creating-a-blob-from-a-base64-string-in-javascript
URL моего изображения выглядит примерно так (некоторые вещи я заменяю на «personalName», потому что не могу поделиться изображением): https://personalName.personalName.com/component/get?id=cbd6a354-1700-11e8-b451-0a540af4044a&username=personalName&apiKey=a393ceba-1350-11e6-9382-f23c91df2143
Я ожидал получить исходное изображение jpg, но с новым именем.
Спасибо.