Мы пытаемся взаимодействовать с веб-службой RESTful, которая ожидает файл.
Я задаю имя поля для данных (как того требует API), а затем указываю файл в качестве абсолютного пути. Когда файл попадает на сервер, имя файла в транзакции HTTP является полным абсолютным путем.
Это вызывает проблему с API, поскольку полный путь записывается как «FileName».
Как заставить ColdFusion сообщать только имя файла, а не полный путь?
Мы используем ColdFusion 9.
Вот CFML:
<cfhttp url="http://server/testcode"
port="9876"
method="post"
result="Content">
<cfhttpparam type="file"
name="data"
file="c:\temp\testfile.txt">
</cfhttp>
Вот несколько примеров взаимодействия HTTP с различными браузерами:
CFHTTP 9
-------------------------------7d0d117230764
Content-Disposition: form-data; name="data"; filename="c:\temp\testfile.txt"
Content-Type: text/plain
This is the text, really long, well, not really.
-------------------------------7d0d117230764--
IE8
-----------------------------7db370d80e0a
Content-Disposition: form-data; name="FileField"; filename="C:\temp\testfile.txt"
Content-Type: text/plain
This is the text, really long, well, not really.
-----------------------------7db370d80e0a--
Chrome 13
------WebKitFormBoundaryDnpFVJwCsZkzTGDc
Content-Disposition: form-data; name="FileField"; filename="testfile.txt"
Content-Type: text/plain
This is the text, really long, well, not really.
Firefox 6
-----------------------------22798303036224
Content-Disposition: form-data; name="FileField"; filename="testfile.txt"
Content-Type: text/plain
This is the text, really long, well, not really.
-----------------------------22798303036224--
Очевидно, что IE8 и CFHTTP оба делают одно и то же (добавьте "c: \ temp" к имени файла). Я не уверен, что спецификация для HTTP, но было бы неплохо, если бы был способ заставить CFHTTP оставить путь вне.
Есть ли способ сделать это?