Как отобразить необработанные данные в PHP? - PullRequest
0 голосов
/ 02 августа 2011

Моя цель - просто отобразить $ _POST ['imageVar'];обратно с заголовками контента в качестве быстрого и грязного средства для «экспорта» изображения из флэш-приложения.Я видел пример этого следующим образом, но он не работает с моей версией php / config:

if (isset($GLOBALS["HTTP_RAW_POST_DATA"]))
{
    // get bytearray
    $jpg = $GLOBALS["HTTP_RAW_POST_DATA"];

    // add headers for download dialog-box
    header('Content-Type: image/jpeg');
    header("Content-Disposition: attachment; filename=".$_GET['name']);
    echo $jpg;
}

Так что в качестве обходного пути я создал скрипт, который сохраняет изображение на сервер, читает изображениеи возвращает его обратно, затем удаляет изображение.Мне не нравится этот подход, так как мне нужно иметь каталог, доступный для записи пользователю apache (я на общем сервере).Есть ли способ выполнить то, что я делаю здесь, без необходимости использовать временный файл?

<?
$fileName = basename( $_FILES['uploadedfile']['name']);
$tempFile = "uploads/" . $fileName;
$fileSize = $HTTP_POST_FILES['uploadedfile']['size'];
if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $tempFile)) {
        $fh = fopen($tempFile, 'r');
        $fileContents = fread($fh, $fileSize);


        header('Content-Type: image/jpeg');
        header("Content-Disposition: attachment; filename=$fileName");
        echo $fileContents;

        fclose($fh);
        unlink($tempFile);
} else {
        echo "upload fail";
}

?>

Любой вклад или идеи с благодарностью!Спасибо за просмотр

Ответы [ 2 ]

2 голосов
/ 02 августа 2011

Вы можете просто использовать:

header('Content-Type: image/jpeg');
header("Content-Disposition: attachment; filename=$fileName")
readfile($_FILES['uploadedfile']['tmp_name']);

Нет необходимости перемещать его, если вы не собираетесь его хранить.

В примечании, касающемся первого решения, на которое вы смотрели, echo file_get_contents('php://input'); не работает?

0 голосов
/ 02 августа 2011
$s = file_get_contents('php://input');

// add headers for download dialog-box
header('Content-Type: image/jpeg');
header("Content-Disposition: attachment; filename=".$_GET['name']);
echo $s;

Как насчет этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...