Как изменить значение входного файла на javascript перед отправкой форм - PullRequest
0 голосов
/ 05 мая 2020

Я искал этот topi c в stackoverflow, но не нашел ответа, который подходит для моей настройки. У меня есть следующий код для изменения размера изображений из полей входного файла. Я хочу заменить значения полей новыми изображениями с измененным размером, прежде чем загружать их.

Utils.resizeImageUpload=(image, func) => {
  Resizer.imageFileResizer(
    image,
    50,
    50,
    'PNG',
    50,
    0,
    uri => {
      func(image, Utils.dataURLtoFile(uri, image.name));
    },
    'base64'
  );
}

Utils.dataURLtoFile = (dataurl, filename) => {

  let arr = dataurl.split(','),
    mime = arr[0].match(/:(.*?);/)[1],
    bstr = atob(arr[1]), 
    n = bstr.length, 
    u8arr = new Uint8Array(n);

  while(n--){
    u8arr[n] = bstr.charCodeAt(n);
  }

  return new File([u8arr], filename, {type:mime});
}

Resizer - от react-image-file-resizer. Как я уже сказал, я хочу изменить поля входного файла новыми объектами File. Ниже приводится ловушка, которую я намеревался использовать.

Utils.resizeImageUpload(filesToUpload[0],
      (img, resizedImg) => {
        // I want to replace the input file field's value here
        // resizedImg is a File object too
      });

filesToUpload - это массив объектов File из поля входного файла.

Пожалуйста, помогите и дайте мне несколько советов.

...