好吧所以一切都得到了妥善保存,但我怎样才能获得我正在保存的文件的网址?
$songs = file_get_contents('https://example.com/tracks/'.$id.'/');
file_put_contents('./tmp/' . stripslashes(htmlspecialchars($songTitle)) . '.mp3', $songs);
没有手动获取每个网址,请注意我是一个新的开发人员仍在学习..但是我不能回复到<a href=""></a>
??
修改:' . stripslashes(htmlspecialchars($songTitle)) . '
这只是我们正在下载的文件的名称,对该字符串没有任何重要意义。
答案 0 :(得分:0)
你不能,至少不能直接,因为它不能那样工作:文件系统不一定转换为URL。
例如,在您的情况下,您将文件保存到tmp目录中。我怀疑该目录是否可以以任何方式访问外部世界,即它具有您可以在浏览器中访问的公共URL。
答案 1 :(得分:0)
这取决于您的设置,但如果您的脚本位于外部可访问的位置并且您信任__FILE__
客户端定义的字段,则可以使用$_SERVER
和tmp
来完成您的操作想。
以下代码假定:
tmp
中的文件可以在外部访问; $_SERVER['HTTP_HOST']
。$_SERVER['REQUEST_URI']
和// This is the only thing you need to set to your taste.
$dest_rel_path = 'tmp/' . stripslashes(htmlspecialchars($songTitle)) . '.mp3';
// This is the final file path in your filesystem.
// `dirname(__FILE__)` can be replaced with __DIR__ in PHP >= 5.3.0
// and the str_replace() part makes the code portable to Windows.
$filesystem_path = dirname(__FILE__) . DIRECTORY_SEPARATOR . str_replace('/', DIRECTORY_SEPARATOR, $dest_rel_path);
$songs = file_get_contents('https://example.com/tracks/'.$id.'/');
file_put_contents($filesystem_path, $songs);
// This takes the URL that the user requested and replaces the
// part after the last '/' with our new .mp3 location.
$req_uri = $_SERVER['REQUEST_URI'];
$url_path = substr($req_uri, 0, 1 + strrpos($req_uri, '/')) . $dest_rel_path;
$url = 'http://' . $_SERVER['HTTP_HOST'] . $url_path;
echo "<a href=\"$url\">This is my link to $songTitle!</a>";
可以“信任”。试试这个:
-U