У меня есть приложение, написанное на javascript, которое позволяет пользователю сохранять изображение на свой диск. Это связано с node.js. Если я попрошу перезаписать ранее сохраненное изображение, я получаю смешанные результаты, когда дело доходит до получения предупреждения от ОС, что я собираюсь перезаписать файл. Если я попытаюсь перезаписать изображение, выбрав старое изображение из диалогового окна сохранения файла, оно вызывает предупреждение. Если я переписываю образ простым вводом в одно и то же имя файла, он перезаписывает изображение, но не дает никаких предупреждений.Перезаписать предупреждение о файле при сохранении изображения с помощью node.js
Функция node.js:
var fs = require('fs');
exports.buildFile = function(name, value) {
if (name.search(/\.[a-z]+/) == -1) {
name = name + ".png";
}
var img = new Buffer(value, encoding='base64');
fs.writeFile(name, img, function(err) {
if(err) {
console.log(err);
} else {
console.log("The file was saved!");
}
});
};
Просто проверяет, если пользователь указал тип файла, а если нет, присоединяет .png и записывает на диск.
Передняя часть:
var global_imageToSave = null;
function screen_shot(fn) {
global_currModel.menuShouldHide = true;
global_currModel.setTextDeletables(false,true);
html2canvas($('body'), {
onrendered: function(canvas) {
global_imageToSave = canvas.toDataURL("image/png").split(',')[1];
global_currModel.menuShouldHide = false;
global_currModel.draw();
sc.buildFile(fn, global_imageToSave);
}
});
}
Использует html2canvas, чтобы сделать снимок экрана, а затем передает эти данные и имя файла получили из диалога HTML.
HTML Dialog OnChange событие:
$('[id^="model_sales_asset"]').live("pagecreate", function() {
$(this).find('.fileDialog').change(function() {screen_shot($('.fileDialog').val());});
});
Как вы можете видеть Filetype в настоящее время добавляется до вызова в ОС, чтобы сохранить файл, так что я не могу понять, почему он соответствует имена файлов только тогда, когда это автоматически вводится, выбирая файл.
Такое поведение согласуется с окнами 7 и 8, а также с mac os 10.7.
Я, хотя об этом и беспокоился, что это приведет к появлению иногда одного предупреждения, а иногда и получению двух, одного от меня и одного от ОС. Вы знаете, могу ли я подавить ОС? –