Содержимое файла POST как Byte [] из приложения PHP в .NET ASP - PullRequest
1 голос
/ 12 октября 2011

Мне нужно опубликовать содержимое файла на веб-странице (C #) в форме Byte [] из PHP. Я пытался использовать cURL и stream_context_create(), но я думаю, что это сводится к тому, как я считываю файл.

Содержание моего сообщения / CURLOPT_POSTFIELDS выглядит следующим образом:

$data .= "\r\n--" . $boundary . "\r\n";
$data .= "Content-Disposition: form-data; name=\"file\"; filename=\"" . $files['name'][$id] . "\"\r\n";
$data .= "Content-Type: application/octet-stream\r\n\r\n";
$data .= file_get_contents($files['tmp_name'][$id]) . "\r\n";
$data .= "--" . $boundary . "--\r\n";

Но это просто не работает.

Постбайтный массив из PHP в .NET WCF Service говорит, что file_get_contents() совместим - но я не нахожу никаких доказательств этого.

http://bytes.com/topic/php/answers/869014-how-convert-gif-file-byte-array-thanks утверждает, что это невозможно. (Нет ничего невозможного!)

Я также пытался использовать варианты fread() fopen() и file() и т. Д.

PS Я знаю, что веб-сервис работает нормально, так как работает несколько идентичный скрипт на C ++ / Java и т. Д. file.readAll() единственная разница, где строка file_get_contents() ...

Благодарен за любые незначительные комментарии или ответ, чтобы исправить мои проблемы!

1 Ответ

1 голос
/ 12 октября 2011

file_get_contents() совместимо.Он вернет двоичную строку содержимого файла, которая является тем, что вы ищете в соответствии с вашим вопросом.Просто чтобы уточнить это заранее.

Я предполагаю, что у вас есть ошибка в другом месте, или вы используете эти данные в неправильном контексте.Где из вашего вопроса мне не ясно.

Однако в вашем коде я вижу, что вы не проверяете и не обрабатываете ошибки.

Установите обработку ошибок PHP на максимумуровень в вашей конфигурации PHP и журнал ошибок.Затем просмотрите журнал ошибок.

Также проверьте ошибки в процессе загрузки файла, В руководстве по PHP есть полная запись о том, как это работает вкл.обработка ошибок при загрузке файлов.

...