Загрузка файла с использованием PHP - PullRequest
0 голосов
/ 24 июня 2010

Я загружаю файл на soundcloud.com со своего собственного сервера с использованием API в PHP:

if (isset($mime)) {
        $tmp_file = $tmp_path . $_FILES['file']['name'];

        // Store the track temporary.
        if (move_uploaded_file($_FILES['file']['tmp_name'], $tmp_file)) {
            $post_data = array(
                'track[title]' => stripslashes($_POST['title']),
                'track[asset_data]' => realpath($tmp_file),
                'track[sharing]' => 'private'
            );

            if ($response = $soundcloud->upload_track($post_data, $mime)) {
                $response = new SimpleXMLElement($response);
                $response = get_object_vars($response);
                $message = 'Success! <a href="' . $response['permalink-url'] . '">Your track</a> has been uploaded!';

                // Delete the temporary file.
                unlink(realpath($tmp_file));
            } else {
                $message = 'Something went wrong while talking to SoundCloud, please try again.';
            }
        } else {
            $message = 'Couldn\'t move file, make sure the temporary path is writable by the server.';
        }
    } else {
        $message = 'SoundCloud support .mp3, .aiff, .wav, .flac, .aac, and .ogg files. Please select a different file.';
    }
}

Это мой код. Временный путь http://122.166.23.38/dev3/bids4less/funkeymusic/upload и у него есть разрешения 777 (-rwxrwxrwx).

Но это показывает:

Не удалось переместить файл, убедитесь, что временный путь доступен для записи сервером.

Как мне исправить эту проблему?

Ответы [ 4 ]

3 голосов
/ 24 июня 2010

Я считаю, что ваш временный путь в php должен указывать на каталог на вашем сервере, а не на местоположение http.

1 голос
/ 12 сентября 2010

Этот вопрос слишком старый, но, как бы то ни было, он все равно всплыл ...

Вам не нужно ничего ни перемещать, ни снимать связь.Просто прочитайте загруженный файл из его временного местоположения.

И очень удобно разбить вашу сложную задачу на более мелкие куски, чтобы найти ошибку.Попробуйте сначала отправить статический файл, затем проверить загрузку файла, и только потом объединить эти задачи в окончательное приложение.

0 голосов
/ 24 июня 2010

TRY S_SERVER вы получите краткое описание по этому URL http://php.net/manual/en/reserved.variables.server.php

Вот пример, приведенный для поиска адреса вашего сервера

попробуйте большой пример, чтобы разобраться в вашем методе

0 голосов
/ 24 июня 2010

Каков размер файла и сколько времени занимает загрузка файла? Можете ли вы проверить эти 2 значения php.ini:

  • max_execution_time
  • post_max_size

Может быть, средство загрузки PHP каким-то образом ограничено? PHP в safe_mode?

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