我想从外部URL保存一个文件,这个文件可能是任何类型的,比如“jpg、png、mp4”等。我想将它保存在Laravel应用程序的公共目录中。请问我该怎么做?非常感谢您的帮助。
我尝试了以下方法,但它只是将文件保存在我的存储文件夹中:
我尝试了以下方法,但它只是将文件保存在我的存储文件夹中:
Storage::put($name, $contents);
谢谢
Storage::put($name, $contents);
谢谢
$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);
请按以下方式使用文件:
use Illuminate\Support\Facades\File;
File::put(public_path( 'ANY FILE YOU WANT' ));
示例:
File::put( public_path( 'js/a.js'), ' CONTENT ');
在身份验证后,从外部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() );
}
}