我想保存外部网址中的文件,该文件可能包含任何类型的文件,例如“jpg,png,mp4等”
我想将它保存在Laravel App的公共目录中。我怎么能这样做?任何帮助将受到高度赞赏。
我尝试了以下内容,但它将文件保存在我的存储文件夹中:
Storage::put($name, $contents);
由于
答案 0 :(得分:8)
在公共路径中创建一个img文件夹,并且:
$image = file_get_contents("https://logos-download.com/wp-content/uploads/2016/09/Laravel_logo.png");
file_put_contents(public_path('img/a.png'), $image);
答案 1 :(得分:2)
使用如下文件
use Illuminate\Support\Facades\File;
然后
File::put(public_path( 'ANY FILE YOU WANT' ));
示例:
File::put( public_path( 'js/a.js'), ' CONTENT ');
答案 2 :(得分:0)
认证后从外部URL下载文件。
public function file_get_contents_curl( $url ) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
public function downloadFile( $imgName, $url, $path )
{
$data = $this->file_get_contents_curl( $url );
file_put_contents( $path.$imgName, $data );
echo "File downloaded!";
}
用于基于日期创建新文件夹的代码。
public function imgBackupFolder( $currentShop ) {
$folderName = 'export'.DS.str_replace( '.', '_', $currentShop->shopify_domain ).DS.'images'.DS.date( 'Y_m_d' ).DS;
return $this->createFolder( $folderName );
}
/*
* Create folder based on the store,date,export type
*/
private function createFolder( $folderName ) {
try {
$path = public_path( $folderName );
if( !File::isDirectory( $path ) ){
File::makeDirectory( $path, 0777, true, true );
}
return $path;
} catch (Exception $ex) {
Log::error( $ex->getMessage() );
}
}