Не может поместить файл в поршень с безопасным ftp

Я использую coldfusion 9, и я пытаюсь захватить файл от FTP-сайта и загрузить его в поршень вместо файловой системы. Если я пробую его с помощью безопасного соединения FTP, это перестало работать с этой ошибкой:

Ошибка произошла во время SFTP getfile операция. Ошибка: C:\JRun4\servers\cfusion\SERVER-INF\temp\cfusion-war-tmp\ram:\test.txt (Имя файла, имя каталога или синтаксис метки тома являются неправильными). Проверьте на плохой путь, имя файла или каталог.

Если я пробую то же самое не безопасным FTP-сайтом, оно работает просто великолепно. Вот код:

<cfftp action = "open" 
username = "xxxxx" 
connection = "My_query" 
password = "xxxxxxx" 
server = "ftp.xxxxxx.com"
port="13266"
secure = "true" 
stopOnError = "Yes">

<cfftp action="getfile"
connection="My_query"
remoteFile="/something.txt"
stopOnError="true" 
localfile="ram://test.txt">
6
задан Scott Chantry 27 January 2010 в 18:37
поделиться

2 ответа

Adobe подтвердила это как ошибку и устранила ее в ColdFusion 9.0.1

3
ответ дан 17 December 2019 в 18:16
поделиться

Ответ ЛБускина превосходен; У меня есть просто несколько вещей добавить.

Первый, JScript. ЧИСТЫЙ действительно делает эту оптимизацию. JScript часто используется менее опытными программистами для задач, которые включают построение больших последовательностей в циклах, таких как построение объектов JSON, HTML-данных и так далее.

Поскольку эти программисты могут не знать о n-квадратичной стоимости наивного распределения последовательности, могут не знать о существовании последовательности строителей и часто писать код с помощью этого образца, мы сочли, что было бы разумно использовать эту оптимизацию JScript.NET.

Программисты C #, как правило, больше осведомлены о базовых затратах на код, который они пишут, и больше знают о существовании готовых компонентов, таких как StringBuilder, поэтому они нуждаются в такой оптимизации меньше. И что более принципиально, философия дизайна C # заключается в том, что это язык «делай то, что я сказал» с минимумом «магии»; JScript - это язык «делай то, что я имею в виду», который делает все возможное, чтобы понять, как лучше служить тебе, даже если это иногда означает догадываться неправильно. Обе философии справедливы и полезны.

Иногда это «идет в другой путь». Сравните этот выбор с выбором, который мы делаем для переключателей на последовательностях. Коммутаторы на последовательностях фактически компилируются как создание словаря, содержащего последовательности, а не как ряд сравнений строк. Эта оптимизация может быть плохой; это может быть быстрее просто сделать сравнение последовательностей. Но здесь мы догадываемся, что вы «имели в виду» переход к табличному поиску, а не к серии утверждений «если» - если бы вы имели в виду серию утверждений «если», вы могли бы легко написать это самостоятельно.

-121--1633834-

Интерфейс администратора использует __ str __ () для определения дисплея модели. При создании модели я всегда определяю как __ Юникод __ () , так и __ str __ () . Например:

class Activity(models.Model):
    activity_code = models.ForeignKey(ActivityCode)
    note = models.TextField(blank=True)
    def __str__(self):
        return "(%s) %s" % (self.activity_code.short, self.note)
    def __unicode__(self):
        return u'(%s) %s' % (self.activity_code.short, self.note)

Update:
Это выглядит так, как будто ваш def __ unicode __ (self) не имеет правильного отступа в коде. В результате он не является частью вашего класса и не используется. Отступы очень важны в Python.

-121--4950630-

Это может быть исправимо, если удалить части последовательности.

Попробуйте заменить ram ://test.txt

с

ram :///test.txt

Также можно попробовать избежать символа «:».

Этот тип действий безопасен только для продвинутых пользователей. Перепутать с незаконными символами при передаче файлов имеет присущий риск оставить мусор на диске.

0
ответ дан 17 December 2019 в 18:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: