Как сохранить .gif в Classic ASP — конвертация из PHP-скрипта — опции для fopen, fwrite

У меня есть очень маленький php-скрипт, который делает именно то, что мне нужно — однако мне нужно конвертировать его в классический ASP. Я гуглил, но не смог найти информацию о чем-то похожем на «fopen» или «fwrite» в классическом ASP.

Мой оригинальный скрипт PHP:

<?php
$responseImg = file_get_contents("http://url.to/the/api/thatreturnsagif");
$fp = fopen("/my/server/public_html/mydirectory/samepicture.gif", "w");
fwrite($fp, $responseImg);
fclose($fp);
?>

Очень короткий, очень простой и делает то, что мне нужно. Это делает вызов API, который возвращает GIF. Я сохраняю gif на своем локальном сервере, и cron-job запускает скрипт так часто, чтобы поддерживать gif в актуальном состоянии.

Я перехожу на сервер IIS, который делает не есть php, так что классического ASP будет достаточно.

Я получил это далеко:

<%
url = "http://url.to/the/api/thatreturnsagif"set xmlhttp = server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
xmlhttp.open "GET", url, false
xmlhttp.send ""Response.write xmlhttp.responseText
set xmlhttp = nothing
%>

Я был в состоянии соединить это с некоторыми другими вещами онлайн.

Мне просто нужно выяснить, как сохранить GIF-файл, который будет возвращен на сервере, — тогда я настрою запланированные задачи, чтобы запустить его с интервалом.

Любая помощь приветствуется.

0

Решение

xmlhttp (экземпляр IServerXMLHTTPRequest) имеет метод responseBody который возвращает массив байтов, используйте его вместо responseText,
Затем запишите в поток и сохраните как файл.

url = "http://url.to/the/api/thatreturnsagif"set xmlhttp = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
xmlhttp.open "GET", url, false
xmlhttp.send
With Server.CreateObject("Adodb.Stream")
.Type = 1 '1 for binary stream
.Open
.Write xmlhttp.responseBody
.SaveToFile Server.Mappath("\mydirectory\samepicture.gif"), 2 ' 2 for overwrite
.Close
End With
set xmlhttp = nothing
1

Другие решения

РЕДАКТИРОВАНИЕ

Прежде всего, установка PHP на IIS не так уж и сложна, это может быть для вас лучшим вариантом, чем переписывать все в Classic ASP

Определение Response.ContentType важно. Кроме того, я никогда не пробовал это с файлом изображения раньше, поэтому я думаю, здесь немного

Отредактировано — я пробовал это, и это работает. Сохраните приведенный ниже код в виде отдельного файла — присвойте ему имя, например mygif.asp

<% url = "http://url.to/the/api/thatreturnsagif"Set mygif = Server.CreateObject("Msxml2.ServerXMLHTTP.6.0")
mygif.open "GET",url, false
mygif.send
Response.ContentType = "image/gif"Response.binarywrite mygif.ResponseBody

set mygif=nothing %>

Затем вы можете встроить его с тегом img так же, как вы вставили бы плоское изображение.

<img src="mygif.asp">
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector