Я пытаюсь эмулировать вызов POST / fileupload, чтобы я мог сделать это программно, а не с помощью неуклюжего устаревшего приложения.
Поле формы в моей попытке эмуляции выглядит следующим образом
<Input Type=text name="data" value="begin+600+%7B_TRACK_NAME_%7D%0D%0AM240S...">
Согласно моему анализатору трафика HTTP, оригинальная версия публикует подобное
data=begin+600+%7b%5fTRACK%5fNAME%5f%7d%0d%0aM240S...
(это продолжается и продолжается, и это частичная загрузка, поэтому таких сообщений десятки)
Когда я пытаюсь выполнить мой вызов POST (из формы PHP), он отправляет
data=begin%2B600%2B%257B_TRACK_NAME_%257D%250D%250AM240S...
(и дальше и дальше)
так, естественно, серверная сторона ошеломлена моей глупостью и говорит ужасные вещи обо мне и моих близких, а не принимает файл.
Есть идеи?
Ну, причина, по которой я не опубликовал свой код, заключается в том, что он буквально всего лишь одна запись в форме PHP. Значение ... Я получаю ту же ошибку, если просто беру данные, которые я публикую, и вручную отправляю их, а не генерирую эти данные программным путем.
Но, если это поможет, код, который я бы использовал, выглядел бы примерно так:
// Opening the file and loading into the variable $contents
$filename = "sample.mp3";
$handle = fopen($filename,"r");
$contents = fread($handle, filesize($filename));
fclose($handle);
// uu_encoding the string
$uu_string = convert_uuencode($contents);
// the first line BEFORE uu_encoding looks like
// ID39TTrandomCOMengiTunPGAP0TENiTunes 10.5.1COMhe
// (it's an MP3)
// the first line AFTER uu_encoding looks like
// M240S`@`````0.514,@``"`!R86YD;VT`0T]-```0`&5N9VE4=6Y01T%0
// url_encoding the uu_encoded string
$url_string = rawurlencode($uu_string);
// the first line after url_encoding looks like
// M240S%60%40%60%60%60%60%600.514%2C...
<form action="target.aspx">
<Input Type=text name="data" value="<? echo $url_string; ?>">
<Input Type=Submit>
</form>
При отправке вызов POST выглядит следующим образом
Если я отправлю это, сервер ответит «Ошибка: входная строка была не в правильном формате», что, как я полагаю, связано с тем, что сервер ожидает данные определенного формата и длины. Поэтому моя цель - выяснить, почему мои данные не похожи на традиционные «окончательные» данные, и первым шагом будет выяснить, почему мои данные выглядят так.