Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 1
Регистрация: 08.09.2018
Сообщений: 111

Как canvas загрузить на сервер как изображение?

29.08.2022, 19:26. Показов 1014. Ответов 6

Студворк — интернет-сервис помощи студентам
Я использовал плагин react-image-crop, после обрезание изображения я получаю base64 строку, как мне это всё собрать что бы загрузить на сервер картинку, а не base64.

Сервер хочет принимать изображение, я отправляю ему строку base64, получаю ошибку, нужно как-то решить это...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2022, 19:26
Ответы с готовыми решениями:

Как загрузить картину в Canvas?
global filename filename= filedialog.askopenfilename(initialdir="/",title="Open File",filetypes=) photo =...

Не удается загрузить изображение на сервер
Подскажите уже не знаю что делать Warning: copy(/var/www/test.kg/img/noutbuk-naushniki-klaviatura.jpg): failed to open stream: Permission...

Как загрузить картинку с локального диска на сайт (с canvas)?
Здравствуйте! Как загрузить картинку с помощью canvas только на форму сайта? Т.е. не в папку сайта а, только в форму.

6
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
29.08.2022, 19:38
А на каком ЯП у вас серверный скрипт?
0
1 / 1 / 1
Регистрация: 08.09.2018
Сообщений: 111
29.08.2022, 19:44  [ТС]
Получаю сейчас что-то типа
Code
1
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAAwICAgICAwICAgMDAwMEBgQEBAQECAYGBQYJCAoKCQgJCQoMDwwKCw4LCQkNEQ0ODxAQERAKDBITEhATDxAQEP/bAEMBAwMDBAMECAQECBALCQsQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEP/AABEIAUABQAMBIgACEQEDEQH/xAAdAAEAAAcBAQAAAAAAAAAAAAAAAwQFBgcICQIB/8QASBAAAQMDAwIDBQUFBgMFCQA.......
Добавлено через 52 секунды
Я не знаю, не давно на проекте....

Добавлено через 3 минуты
У меня просто есть API на которое они хотят что бы прислал изображение с Front-end, но так как я сначала обрезал его, через react-image-crop оно у меня в формате base64...
0
126 / 94 / 34
Регистрация: 24.06.2022
Сообщений: 253
29.08.2022, 21:50
Цитата Сообщение от Mukzer Посмотреть сообщение
после обрезание изображения я получаю base64 строку
код бы показали ..
Цитата Сообщение от Mukzer Посмотреть сообщение
как мне это всё собрать что бы загрузить на сервер картинку, а не base64.
Предположение
Делаете что-то такое
JavaScript
1
const base64Image = canvas.toDataURL('image/jpeg');
когда можно canvas.toBlob
0
1 / 1 / 1
Регистрация: 08.09.2018
Сообщений: 111
29.08.2022, 21:56  [ТС]
Вот у меня компонент ( и кастомный хук useCroppedImage ) который обрезает изображение, и в функции "getCroppedImg" возвращает обрезанное изображение как base64....

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import React, { FC } from 'react';
import ReactCrop, { Crop } from 'react-image-crop';
import { useTranslation } from 'react-i18next';
import Icon from '../icon/Icon';
import 'react-image-crop/dist/ReactCrop.css';
import Style from './CropImage.module.scss';
 
interface ICropImage {
  minWidth?: number;
  minHeight?: number;
  classes?: string;
  imageSrc: any;
  crop: Crop;
  setCrop: any;
  imgRef: any;
  onSelectFile: any;
  onLoad: any;
}
 
const CropImage: FC<ICropImage> = ({
  classes,
  minWidth = 250,
  minHeight = 250,
  imageSrc,
  crop,
  setCrop,
  imgRef,
  onSelectFile,
  onLoad
}) => {
  const { t } = useTranslation();
  return (
    <div className={classes ? classes : ''}>
      {imageSrc ? (
        <div className={Style.cropWrapper}>
          <ReactCrop
            crop={crop}
            minWidth={minWidth}
            minHeight={minHeight}
            onChange={(c) => setCrop(c)}
            aspect={1 / 1}
          >
            <img ref={imgRef} src={imageSrc} onLoad={onLoad} alt="crop image" />
          </ReactCrop>
        </div>
      ) : (
        <label
          className={Style.inputImage}
          title={t('crop-image.upload-a-photo')}
        >
          <input type="file" accept="image/*" onChange={onSelectFile} />
          <Icon id="attach" width={24} height={22} />
          <span>{t('crop-image.upload-a-photo')}</span>
        </label>
      )}
    </div>
  );
};
 
export default CropImage;
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import React, { useCallback, useRef, useState } from 'react';
import { Crop } from 'react-image-crop';
 
export const useCropImage = (
  width: number,
  height: number,
  minWidth = 250,
  minHeight = 250
) => {
  const imgRef = useRef<HTMLImageElement>(null);
  const [crop, setCrop] = useState<Crop>({
    unit: 'px',
    x: 130,
    y: 36,
    width: width < minWidth ? minWidth : width,
    height: height < minHeight ? minHeight : height
  });
  const [imageSrc, setImageSrc] = useState<any>();
  const [image, setImage] = useState<HTMLImageElement>();
  const onSelectFile = (event: React.ChangeEvent<HTMLInputElement>) => {
    if (event.target.files && event.target.files.length > 0) {
      const reader = new FileReader();
      reader.readAsDataURL(event.target.files[0]);
      reader.addEventListener('load', () => setImageSrc(reader.result));
    }
  };
  const onLoad = useCallback((evt: any) => setImage(evt.target), []);
  const getCroppedImg = () => {
    if (image) {
      const canvas = document.createElement('canvas') as HTMLCanvasElement;
      const scaleX = image.naturalWidth / image.width;
      const scaleY = image.naturalHeight / image.height;
      canvas.width = crop.width;
      canvas.height = crop.height;
      canvas
        .getContext('2d')!
        .drawImage(
          image,
          crop.x * scaleX,
          crop.y * scaleY,
          crop.width * scaleX,
          crop.height * scaleY,
          0,
          0,
          crop.width,
          crop.height
        );
      return canvas
        .toDataURL('image/jpeg')
        .replace('image/png', 'image/octet-stream');
    }
  };
  return {
    crop,
    imgRef,
    onLoad,
    setCrop,
    imageSrc,
    minWidth,
    minHeight,
    setImageSrc,
    onSelectFile,
    getCroppedImg
  };
};
Добавлено через 3 минуты
В документации показано как сделать что бы файл можно было скачать, а мне его скачивать не нужно, мне бы его как-то дальше передать api - сервер....
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
30.08.2022, 05:38
Цитата Сообщение от Mukzer Посмотреть сообщение
что бы загрузить на сервер картинку, а не base64.
Как выглядит запрос к серверу?
0
1 / 1 / 1
Регистрация: 08.09.2018
Сообщений: 111
30.08.2022, 07:52  [ТС]
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
30.08.2022, 07:52
Помогаю со студенческими работами здесь

Как можно загрузить изображение как ресурс
Изучать Java начал совсем недавно, и вот что-то сделал. Экспортировал в .jar, потом в .exe, но само изображение не видно, окно получается...

Как сохранить изображение из Canvas?
Помогите пожалуйста нашел пример того как рисовать в canvas, с этим разобрался, а вот как сохранять нарисованное изображение не нашел. ...

Как на canvas переместить изображение?
как на canvas таскать изображение мышкой? можете подсказать, какие методы для этого использовать?

Самый простой способ загрузить изображение на сервер
Здравствуйте! Есть необходимость создать приложение под андроид которое будет иметь 1 кнопку и загружать выбранное изображение. ...

Как поместить изображение с Canvas-а в Bitmap?
Как поместить изображение с Canvas-а в Bitmap?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru