2

Используя следующий скрипт, я загружаю картинки на свой FTP-сервер. Сценарии, кажется, работают, но когда я пытался получить доступ к изображению в браузере, они не работают. Есть идеи почему?

#!/bin/sh                                   
HOST='myftp'                       
USER='mylogin'                              

ftp -n $HOST <<END_SCRIPT                   
quote USER $USER                            
quote PASS $1                               
put $2                                      
quit                                        
END_SCRIPT                                  
exit 0     

1 ответ1

12

Ваши изображения загружаются в режиме сети ASCII, а не в двоичном режиме.

Сетевой режим ASCII полезен при передаче текстовых файлов (простой текст, HTML и т.д.). Если вы перенесете, например, текстовый файл с клиента под управлением Windows на сервер под управлением Linux, он автоматически преобразует все разрывы строк Windows (13 10) в разрывы строк Unix (10) и добавляет завершающий символ конца файла (10)

Очевидно, это приводит к повреждению файла при передаче двоичных файлов, таких как изображения.

Для того, чтобы переключиться в двоичном режиме, выполнить эту команду перед put

binary

От man ftp:

ascii    Set the file transfer type to network ASCII.
         This is the default type.

binary   Set the file transfer type to support binary image transfer.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .