我正在使用PHP中的API将文件从我自己的服务器上传到soundcloud.com:
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)。
但它显示:
无法移动文件,请确保服务器可以写入临时路径。
如何解决此问题?
答案 0 :(得分:3)
我相信你在php中的临时路径应该指向服务器上的目录,而不是http位置。
答案 1 :(得分:1)
这个问题太旧了,但无论如何它都会弹出......
您不必移动任何东西,也不必取消链接。 只需从它的临时位置读取上传的文件。
将复杂任务拆分为较小的块以便找到错误非常方便。尝试首先发送静态文件,然后测试文件上载,然后将这些任务加入到最终应用程序中。
答案 2 :(得分:0)
文件大小是多少,上传文件需要多长时间? 你能否验证这2个php.ini值:
也许PHP的上传工具在某种程度上受到限制? PHP是否在safe_mode? p>
答案 3 :(得分:0)
尝试S_SERVER您将从此网址http://php.net/manual/en/reserved.variables.server.php
获得简要说明以下是查找服务器地址的示例
尝试一个很好的例子来解决你的方法