file_get_contents ожидает строку - PullRequest
0 голосов
/ 03 мая 2011

Я пытаюсь получить файл от s3 и переместить его в мою локальную файловую систему, и я получаю эту ошибку

file_get_contents () ожидает, что параметр 1 будет строкой, объект задан

$upload_directory = "C:\wamp\test";

$s3 = new AmazonS3("key", "pass");



$source = $s3->getObject("bucket","file.mp3");
$destination = "C:\wamp\test\file.mp3";

$data = file_get_contents($source);

$handle = fopen($destination, "w");
fwrite($handle, $data);
fclose($handle);

Ответы [ 5 ]

2 голосов
/ 03 мая 2011

Очевидно, AmazonS3::getObject() не возвращает строку. Предлагает ли объект, возвращенный из getObject(), метод или свойство строки URL?

Редактировать: Я знаю, это не то, что вы используете, но amazon-s3-php-class предлагает гораздо более простой интерфейс для локального сохранения объекта S3.

2 голосов
/ 03 мая 2011

Вы, очевидно, передаете ему объект, var_dump ($ source), чтобы увидеть, какие данные вы получаете в первую очередь.это должна быть строка

0 голосов
/ 07 сентября 2011

Приведение к строке не будет работать для объекта, возвращенного из $ s3-> getObject. Если вам нужна строка из $ s3-> getObject, сделайте это вместо:

$image = $s3->getObject($bucket, "file.jpg");
if ($image->body) {
    return $image->body;
} else {
    return '';
}
0 голосов
/ 03 мая 2011

Приведите объект в строку.

$source = (string) $s3->getObject("bucket","file.mp3");
0 голосов
/ 03 мая 2011

посмотрите, есть ли у возвращаемого объекта функция __toString (), которую вы можете вызвать. Если он возвращает путь к файлу, вы можете использовать его в функции file_get_contents.

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