{"id":842,"date":"2025-06-12T00:57:23","date_gmt":"2025-06-11T16:57:23","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/842.html"},"modified":"2025-06-12T00:57:23","modified_gmt":"2025-06-11T16:57:23","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-laravel-%e4%b8%ad%e4%b8%8a%e4%bc%a0%e5%a4%9a%e4%b8%aa%e6%96%87%e4%bb%b6","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/842.html","title":{"rendered":"\u5982\u4f55\u5728 Laravel \u4e2d\u4e0a\u4f20\u591a\u4e2a\u6587\u4ef6"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#19978;&#20256;&#22810;&#20010;&#25991;&#20214;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#24335;&#23454;&#29616;&#65292;&#20197;&#19979;&#26159;&#20960;&#31181;&#24120;&#35265;&#30340;&#26041;&#27861;&#65306;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992;&#34920;&#21333;&#21644; <code>File<\/code> &#31867;<\/h3>\n<ol>\n<li>\n<p><strong>&#21019;&#24314;&#25511;&#21046;&#22120;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest;\nuse AppModelsYourModel;\n\nclass YourController extends Controller\n{\n   public function store(Request $request)\n   {\n       $model = new YourModel();\n       $model-&gt;fill($request-&gt;all());\n\n       if ($request-&gt;hasFile('files')) {\n           foreach ($request-&gt;file('files') as $file) {\n               $filename = time() . '.' . $file-&gt;getClientOriginalExtension();\n               $file-&gt;move(public_path('uploads'), $filename);\n               \/\/ &#20320;&#21487;&#20197;&#22312;&#36825;&#37324;&#28155;&#21152;&#20854;&#20182;&#22788;&#29702;&#36923;&#36753;&#65292;&#20363;&#22914;&#20445;&#23384;&#21040;&#25968;&#25454;&#24211;&#25110;&#20854;&#20182;&#23384;&#20648;&#20301;&#32622;\n           }\n       }\n\n       $model-&gt;save();\n\n       return redirect()-&gt;back()-&gt;with('success', 'Files uploaded successfully');\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314;&#35270;&#22270;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;form action=\"{{ route('your.store') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n   @csrf\n   &lt;input type=\"text\" name=\"name\" placeholder=\"Name\"&gt;\n   &lt;input type=\"file\" name=\"files[]\" multiple&gt;\n   &lt;button type=\"submit\"&gt;Upload&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992; <code>IlluminateSupportFacadesStorage<\/code><\/h3>\n<ol>\n<li>\n<p><strong>&#21019;&#24314;&#25511;&#21046;&#22120;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest;\nuse IlluminateSupportFacadesStorage;\n\nclass YourController extends Controller\n{\n   public function store(Request $request)\n   {\n       $model = new YourModel();\n       $model-&gt;fill($request-&gt;all());\n\n       if ($request-&gt;hasFile('files')) {\n           foreach ($request-&gt;file('files') as $file) {\n               $filename = time() . '.' . $file-&gt;getClientOriginalExtension();\n               Storage::put(\"public\/uploads\/$filename\", file_get_contents($file));\n               \/\/ &#20320;&#21487;&#20197;&#22312;&#36825;&#37324;&#28155;&#21152;&#20854;&#20182;&#22788;&#29702;&#36923;&#36753;&#65292;&#20363;&#22914;&#20445;&#23384;&#21040;&#25968;&#25454;&#24211;&#25110;&#20854;&#20182;&#23384;&#20648;&#20301;&#32622;\n           }\n       }\n\n       $model-&gt;save();\n\n       return redirect()-&gt;back()-&gt;with('success', 'Files uploaded successfully');\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314;&#35270;&#22270;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;form action=\"{{ route('your.store') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n   @csrf\n   &lt;input type=\"text\" name=\"name\" placeholder=\"Name\"&gt;\n   &lt;input type=\"file\" name=\"files[]\" multiple&gt;\n   &lt;button type=\"submit\"&gt;Upload&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<\/li>\n<\/ol>\n<h3>&#26041;&#27861;&#19977;&#65306;&#20351;&#29992; <code>Laravel Collective<\/code> &#30340; <code>FileField<\/code><\/h3>\n<ol>\n<li>\n<p><strong>&#23433;&#35013; <code>laravelcollective\/html<\/code><\/strong>&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require laravelcollective\/html<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314;&#25511;&#21046;&#22120;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-php\">use IlluminateHttpRequest;\nuse AppModelsYourModel;\nuse IlluminateSupportFacadesStorage;\n\nclass YourController extends Controller\n{\n   use IlluminateFoundationAuthAuthenticatesUsers;\n\n   public function store(Request $request)\n   {\n       $model = new YourModel();\n       $model-&gt;fill($request-&gt;all());\n\n       if ($request-&gt;hasFile('files')) {\n           foreach ($request-&gt;file('files') as $file) {\n               $filename = time() . '.' . $file-&gt;getClientOriginalExtension();\n               Storage::put(\"public\/uploads\/$filename\", file_get_contents($file));\n               \/\/ &#20320;&#21487;&#20197;&#22312;&#36825;&#37324;&#28155;&#21152;&#20854;&#20182;&#22788;&#29702;&#36923;&#36753;&#65292;&#20363;&#22914;&#20445;&#23384;&#21040;&#25968;&#25454;&#24211;&#25110;&#20854;&#20182;&#23384;&#20648;&#20301;&#32622;\n           }\n       }\n\n       $model-&gt;save();\n\n       return redirect()-&gt;back()-&gt;with('success', 'Files uploaded successfully');\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p><strong>&#21019;&#24314;&#35270;&#22270;<\/strong>&#65306;<\/p>\n<pre><code class=\"language-html\">&lt;form action=\"{{ route('your.store') }}\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\n   @csrf\n   &lt;input type=\"text\" name=\"name\" placeholder=\"Name\"&gt;\n   {{ Form::fileField('files[]', ['multiple' =&gt; true]) }}\n   &lt;button type=\"submit\"&gt;Upload&lt;\/button&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#36825;&#20123;&#26041;&#27861;&#37117;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312; Laravel &#20013;&#19978;&#20256;&#22810;&#20010;&#25991;&#20214;&#12290;&#36873;&#25321;&#21738;&#31181;&#26041;&#27861;&#21462;&#20915;&#20110;&#20320;&#30340;&#20855;&#20307;&#38656;&#27714;&#21644;&#39033;&#30446;&#32467;&#26500;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>Laravel&#20197;&#20854;&#20248;&#38597;&#30340;&#35821;&#27861;&#21644;&#38024;&#23545;web&#24212;&#29992;&#24320;&#21457;&#32773;&#30340;&#24378;&#22823;&#21151;&#33021;&#32780;&#38395;&#21517;&#65292;&#23427;&#25552;&#20379;&#20102;&#19968;&#20010;&#24378;&#22823;&#30340;&#25991;&#20214;&#22788;&#29702;&#31995;&#32479;&#12290;&#22312;web&#24212;&#29992;&#31243;&#24207;&#20013;&#24120;&#35265;&#30340;&#20219;&#21153;&#20043;&#19968;&#26159;&#22914;&#20309;&#20801;&#35768;&#29992;&#25143;&#19968;&#27425;&#24615;&#19978;&#20256;&#22810;&#20010;&#25991;&#20214;&#12290;&#26412;&#25945;&#31243;&#23558;&#25351;&#23548;&#24744;&#20351;&#29992;Laravel&#30340;&#21151;&#33021;&#26469;&#23454;&#29616;&#36825;&#19968;&#29305;&#24615;&#12290;<\/p><h2>&#20808;&#20915;&#26465;&#20214;<\/h2><p>&#22312;&#25105;&#20204;&#24320;&#22987;&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24744;&#24050;&#32463;&#20934;&#22791;&#22909;&#20197;&#19979;&#20869;&#23481;&#65306;<\/p><p>&#19968;&#20010;&#25903;&#25345;Laravel&#30340;MySQL&#25110;&#20854;&#20182;&#25968;&#25454;&#24211;&#23454;&#20363;&#12290;<\/p><p>&#29087;&#24713;HTML&#34920;&#21333;&#21644;&#25991;&#20214;&#36755;&#20837;&#12290;<\/p><p>Laravel &#30340;&#35831;&#27714;&#22788;&#29702;&#22522;&#26412;&#29702;&#35299;<\/p><p>&#22312;&#24744;&#30340;&#26412;&#22320;&#24320;&#21457;&#26426;&#22120;&#19978;&#24050;&#23433;&#35013;&#20102;Laravel&#12290;&#22914;&#26524;&#24744;&#36824;&#27809;&#26377;&#65292;&#35831;&#21442;&#38405;&#27492;&#25945;&#31243;&#65306;&#22914;&#20309;&#22312;Windows&#21644;Mac&#19978;&#23433;&#35013;Laravel&#12290;<\/p><h2>&#35774;&#32622;&#36335;&#30001;&#21644;&#25511;&#21046;&#22120;<\/h2><p>&#39318;&#20808;&#65292;&#35774;&#32622;&#19968;&#20010;&#36335;&#30001;&#21644;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;&#25991;&#20214;&#19978;&#20256;&#35831;&#27714;&#12290;&#28155;&#21152;&#20197;&#19979;&#20195;&#30721;&#21040;&#35813;&#36335;&#30001;&#21644;&#25511;&#21046;&#22120;&#20013;&#12290;<code>routes\/web.php<\/code>&#25991;&#20214;&#12290;<\/p><pre><code>Route::post('\/upload', 'FileUploadController@store');<\/code><\/pre><p>&#21019;&#24314;&#19968;&#20010;FileUploadController&#65306;<\/p><pre><code>php artisan make:controller FileUploadController<\/code><\/pre><h3>&#20934;&#22791;&#25968;&#25454;&#24211;<\/h3><p>&#20026;&#20102;&#23384;&#20648;&#25991;&#20214;&#20803;&#25968;&#25454;&#65292;&#20320;&#38656;&#35201;&#39318;&#20808;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#34920;&#30340;&#36801;&#31227;&#12290;&#36816;&#34892;&#20197;&#19979;Laravel Artisan&#21629;&#20196;&#26469;&#21019;&#24314;&#36801;&#31227;&#65306;<\/p><pre><code>php artisan make:migration create_files_table<\/code><\/pre><p>&#32534;&#36753;&#29983;&#25104;&#30340;&#36801;&#31227;&#25991;&#20214;&#65292;&#20301;&#20110;<code>database\/migrations<\/code>&#30446;&#24405;&#20197;&#23450;&#20041;&#26550;&#26500;&#65306;<\/p><pre><code>Schema::create('files', function (Blueprint $table) {\r\n    $table-&gt;id();\r\n    $table-&gt;string('filename');\r\n    $table-&gt;timestamps();\r\n});\r\n<\/code><\/pre><p>&#28982;&#21518;&#36816;&#34892;&#36801;&#31227;&#65306;<\/p><pre><code>php artisan migrate<\/code><\/pre><h3>&#26500;&#24314;&#34920;&#21333;<\/h3><p>&#22312;&#24744;&#30340;&#35270;&#22270;&#25991;&#20214;&#20013;&#21019;&#24314;&#19968;&#20010;&#25991;&#20214;&#19978;&#20256;&#30340;HTML&#34920;&#21333;&#65306;<\/p><pre><code>&lt;form action=\"\/upload\" method=\"post\" enctype=\"multipart\/form-data\"&gt;\r\n    {{ csrf_field() }}\r\n    &lt;input type=\"file\" name=\"files[]\" multiple&gt;\r\n    &lt;button type=\"submit\"&gt;Upload Files&lt;\/button&gt;\r\n&lt;\/form&gt;\r\n<\/code><\/pre><p>&#35831;&#35760;&#20303;&#65292;&#35774;&#23450;&#30340;&#30446;&#26631;&#26159;&#37325;&#35201;&#30340;&#12290;<code>enctype<\/code>&#27809;&#26377;&#25910;&#21040;&#20219;&#20309;&#20449;&#24687;&#65292;&#35831;&#38382;&#26377;&#20160;&#20040;&#25105;&#21487;&#20197;&#24110;&#21161;&#24744;&#30340;&#21527;&#65311;<code>multipart\/form-data<\/code>&#25991;&#20214;&#19978;&#20256;&#24517;&#35201;&#30340;&#65292;&#22240;&#27492;&#38656;&#35201;&#36827;&#34892;&#22788;&#29702;&#12290;<code>multiple<\/code>&#25991;&#20214;&#36755;&#20837;&#25511;&#20214;&#20801;&#35768;&#22810;&#25991;&#20214;&#36873;&#25321;&#12290;<\/p><h2>&#22788;&#29702;&#25991;&#20214;&#19978;&#20256;&#25805;&#20316;&#12290;<\/h2><p>&#37324;&#38754;<code>FileUploadController<\/code>&#23454;&#29616;&#25991;&#20214;&#19978;&#20256;&#30340;&#23384;&#20648;&#36923;&#36753;&#12290;<\/p><pre><code>public function store(Request $request)\r\n{\r\n    $request-&gt;validate(['files.*' =&gt; 'required|file|max:2048']);\r\n\r\n    if ($request-&gt;hasfile('files')) {\r\n        foreach ($request-&gt;file('files') as $file) {\r\n            $filename = $file-&gt;getClientOriginalName();\r\n            $file-&gt;storeAs('public\/uploads', $filename);\r\n\r\n            File::create([\r\n                'filename' =&gt; $filename\r\n            ]);\r\n        }\r\n    }\r\n\r\n    return back()-&gt;with('success', 'Files have been uploaded.');\r\n}\r\n<\/code><\/pre><h3>&#39564;&#35777;&#25991;&#20214;<\/h3><p>&#30830;&#20445;&#27599;&#20010;&#25991;&#20214;&#31526;&#21512;&#24744;&#30340;&#24212;&#29992;&#31243;&#24207;&#30340;&#20219;&#20309;&#29305;&#23450;&#35201;&#27714;&#38750;&#24120;&#37325;&#35201;&#12290;&#20363;&#22914;&#65292;&#24744;&#21487;&#20197;&#38480;&#21046;&#25991;&#20214;&#31867;&#22411;&#25110;&#22823;&#23567;&#65306;<\/p><pre><code>$request-&gt;validate([\n   'files.*' =&gt; 'required|file|mimes:jpg,bmp,png|max:5000'\n]);<\/code><\/pre><h3>&#23384;&#20648;&#25991;&#20214;<\/h3><p>&#19968;&#26086;&#25991;&#20214;&#36890;&#36807;&#39564;&#35777;&#65292;&#23601;&#20250;&#34987;&#24490;&#29615;&#22788;&#29702;&#24182;&#23384;&#20648;&#22312;&#25152;&#38656;&#30340;&#30446;&#24405;&#20013;&#65292;&#36825;&#20351;&#29992;&#30340;&#26159;Laravel&#20869;&#32622;&#30340;&#25991;&#20214;&#23384;&#20648;&#31995;&#32479;&#65292;&#20854;&#40664;&#35748;&#20026;Laravel&#30340;&#25991;&#20214;&#23384;&#20648;&#31995;&#32479;&#12290;<code>storage\/app\/public<\/code>&#30446;&#24405;&#12290;&#36825;&#37324;&#20063;&#21487;&#20197;&#22788;&#29702;&#25968;&#25454;&#24211;&#20869;&#30340;&#25991;&#20214;&#24341;&#29992;&#23384;&#20648;&#65306;<\/p><pre><code>foreach ($request-&gt;file('files') as $file) {\r\n    $filename = $file-&gt;getClientOriginalName();\r\n    $path = $file-&gt;store('uploads', 'public');\r\n\r\n    File::create([\r\n        'filename' =&gt; $path\r\n    ]);\r\n}\r\n<\/code><\/pre><p>&#20351;&#29992;&#30340;&#26159;&#20160;&#20040;&#65311;<code>store<\/code>&#26041;&#27861;&#20250;&#33258;&#21160;&#20026;&#25991;&#20214;&#21517;&#29983;&#25104;&#19968;&#20010;&#21807;&#19968;&#30340;ID&#65292;&#20174;&#32780;&#38450;&#27490;&#25991;&#20214;&#21517;&#20914;&#31361;&#12290;<code>public<\/code>&#21442;&#25968;&#34920;&#31034;&#24212;&#35813;&#23384;&#20648;&#22312;&#12290;<code>storage\/app\/public<\/code>&#25991;&#20214;&#22841;&#12290;&#20320;&#24212;&#35813;&#36816;&#34892;&#20197;&#19979;Artisan&#21629;&#20196;&#26469;&#21019;&#24314;&#31526;&#21495;&#38142;&#25509;&#65306;<\/p><pre><code>php artisan storage:link<\/code><\/pre><h2>&#27491;&#22312;&#26174;&#31034;&#19978;&#20256;&#30340;&#25991;&#20214;&#12290;<\/h2><p>&#35201;&#20174;&#39029;&#38754;&#19978;&#26816;&#32034;&#24182;&#26174;&#31034;&#19978;&#20256;&#30340;&#25991;&#20214;&#65292;&#21487;&#20197;&#20351;&#29992;Laravel&#30340;&#25991;&#20214;&#23384;&#20648;&#25277;&#35937;&#26469;&#35775;&#38382;&#24050;&#23384;&#20648;&#30340;&#25991;&#20214;&#65306;<\/p><pre><code>$files = File::all();\r\nforeach ($files as $file) {\r\n    $url = Storage::url($file-&gt;filename);\r\n    echo '&lt;img src=\"'.asset($url).'\" \/&gt;';\r\n}\r\n<\/code><\/pre><h2>&#27491;&#22312;&#27979;&#35797;&#19978;&#20256;&#12290;<\/h2><p>&#21019;&#24314;&#19968;&#20010;&#36335;&#30001;&#20197;&#26174;&#31034;&#19978;&#20256;&#34920;&#21333;&#65306;<\/p><pre><code>Route::get('\/upload\/form', function () { \n   return view('upload_form'); \n});<\/code><\/pre><p>&#23548;&#33322;&#21040;&#35813;&#36335;&#32447;&#65292;&#22312;&#24744;&#30340;&#27983;&#35272;&#22120;&#20013;&#36873;&#25321;&#22810;&#20010;&#25991;&#20214;&#24182;&#25552;&#20132;&#34920;&#21333;&#12290;&#22914;&#26524;&#19968;&#20999;&#35774;&#32622;&#27491;&#30830;&#65292;&#24744;&#36873;&#25321;&#30340;&#25991;&#20214;&#24212;&#19978;&#20256;&#33267;&#26381;&#21153;&#22120;&#65292;&#24182;&#23384;&#20648;&#22312;&#25968;&#25454;&#24211;&#20013;&#12290;<\/p><p>&#22987;&#32456;&#30830;&#20445;&#22312;&#29983;&#20135;&#24212;&#29992;&#20013;&#23454;&#26045;&#36866;&#24403;&#30340;&#38169;&#35823;&#22788;&#29702;&#21644;&#29992;&#25143;&#21453;&#39304;&#12290;<\/p><h2>&#32467;&#35770;<\/h2><p>&#19978;&#20256;&#22810;&#20010;&#25991;&#20214;&#22312;Laravel&#20013;&#38750;&#24120;&#31616;&#21333;&#65292;&#22810;&#20111;&#20102;Laravel&#20869;&#32622;&#30340;&#26131;&#29992;&#25991;&#20214;&#23384;&#20648;&#31995;&#32479;&#12290;&#25353;&#29031;&#26412;&#25945;&#31243;&#20013;&#30340;&#27493;&#39588;&#25805;&#20316;&#65292;&#20320;&#24212;&#35813;&#33021;&#22815;&#20026;&#20219;&#20309;Laravel&#24212;&#29992;&#31243;&#24207;&#28155;&#21152;&#36825;&#31181;&#21151;&#33021;&#65292;&#22686;&#21152;&#23545;&#29992;&#25143;&#22522;&#30784;&#30340;&#20132;&#20114;&#24615;&#21644;&#23454;&#29992;&#24615;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312; Laravel &#20013;&#19978;&#20256;&#22810;&#20010;&#25991;&#20214;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992; Laravel &#30340; <code>File<\/code> &#31867;&#21644; <code>MultipartController<\/code> &#25511;&#21046;&#22120;&#12290;&#20197;&#19979;&#26159;&#22914;&#20309;&#23454;&#29616;&#30340;&#27493;&#39588;&#65306;<\/p>\n<ol>\n<li>\n<p>&#39318;&#20808;&#30830;&#20445;&#20320;&#22312;&#24212;&#29992;&#20013;&#23433;&#35013;&#20102; <code>Laravel-MediaLibrary<\/code> &#24211;&#12290;&#36825;&#20010;&#24211;&#21487;&#20197;&#22788;&#29702;&#25991;&#20214;&#30340;&#35835;&#21462;&#12289;&#20889;&#20837;&#21644;&#21024;&#38500;&#31561;&#25805;&#20316;&#12290;<\/p>\n<\/li>\n<li>\n<p>&#22312;&#25511;&#21046;&#22120;&#20013;&#24341;&#20837; <code>MediaLibrary<\/code> &#31867;&#65292;&#24182;&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#23454;&#20363;&#12290;<\/p>\n<\/li>\n<\/ol>\n<pre><code class=\"language-php\">use AppHttpControllersMediaLibrary;\n$media = new MediaLibrary();<\/code><\/pre>\n<ol start=\"3\">\n<li>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#26041;&#27861;&#26469;&#22788;&#29702;&#25991;&#20214;&#19978;&#20256;&#35831;&#27714;&#12290;&#22312;&#36825;&#20010;&#26041;&#27861;&#20013;&#65292;&#20320;&#38656;&#35201;&#36941;&#21382; <code>request()-&gt;files()<\/code> &#33719;&#21462;&#25152;&#26377;&#30340;&#25991;&#20214;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public function upload(Request $request)\n{\n    \/\/ &#33719;&#21462;&#25152;&#26377;&#25991;&#20214;\n    $files = $request-&gt;file('file');\n\n    foreach ($files as $file) {\n        \/\/ &#20445;&#23384;&#27599;&#20010;&#25991;&#20214;&#21040;&#25968;&#25454;&#24211;\n        $this-&gt;save($file);\n    }\n}<\/code><\/pre>\n<ol start=\"4\">\n<li>&#22312; <code>save<\/code> &#26041;&#27861;&#20013;&#65292;&#20320;&#38656;&#35201;&#23558;&#25991;&#20214;&#23384;&#20648;&#21040;&#25968;&#25454;&#24211;&#12290;&#20551;&#35774;&#25105;&#20204;&#26377;&#19968;&#20010;&#21517;&#20026; <code>File<\/code> &#30340;&#27169;&#22411;&#31867;&#65292;&#25105;&#20204;&#21487;&#20197;&#36825;&#26679;&#25805;&#20316;&#65306;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public function save(File $file)\n{\n    $path = $this-&gt;uploadPath();\n\n    \/\/ &#20445;&#23384;&#25991;&#20214;&#21040;&#26412;&#22320;&#36335;&#24452;\n    $file-&gt;storeAs($path, $file-&gt;getClientOriginalName());\n\n    \/\/ &#26356;&#26032;&#25991;&#20214;&#29366;&#24577;&#20026;&#24050;&#19978;&#20256;\n    $file-&gt;status = 'uploaded';\n    $file-&gt;save();\n}<\/code><\/pre>\n<ol start=\"5\">\n<li>&#26368;&#21518;&#65292;&#25105;&#20204;&#38656;&#35201;&#23450;&#20041;&#19968;&#20010;&#29992;&#20110;&#29983;&#25104;&#25991;&#20214;&#36335;&#24452;&#30340;&#26041;&#27861;&#12290;&#36825;&#36890;&#24120;&#28041;&#21450;&#21040;&#22788;&#29702;&#30456;&#23545;&#36335;&#24452;&#25110;&#32773;&#36890;&#36807;&#29615;&#22659;&#21464;&#37327;&#35774;&#32622;&#32477;&#23545;&#36335;&#24452;&#12290;<\/li>\n<\/ol>\n<pre><code class=\"language-php\">public static function uploadPath()\n{\n    return storage_path('app\/' . config('app.name') . '\/uploads');\n}<\/code><\/pre>\n<ol start=\"6\">\n<li>&#22312;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#20320;&#36824;&#38656;&#35201;&#22788;&#29702;&#25991;&#20214;&#30340;&#26435;&#38480;&#38382;&#39064;&#65292;&#27604;&#22914;&#21482;&#20801;&#35768;&#19978;&#20256;&#29305;&#23450;&#31867;&#22411;&#30340;&#25991;&#20214;&#65288;&#22914;&#22270;&#29255;&#65289;&#65292;&#24182;&#38480;&#21046;&#21333;&#20010;&#25991;&#20214;&#30340;&#26368;&#22823;&#22823;&#23567;&#12290;<\/li>\n<\/ol>\n<p>&#20197;&#19978;&#23601;&#26159;&#22914;&#20309;&#22312; Laravel &#20013;&#19978;&#20256;&#22810;&#20010;&#25991;&#20214;&#30340;&#22522;&#26412;&#27493;&#39588;&#12290;&#35831;&#27880;&#24847;&#65292;&#36825;&#20123;&#26159;&#22522;&#26412;&#31034;&#20363;&#65292;&#23454;&#38469;&#24212;&#29992;&#20013;&#21487;&#33021;&#38656;&#35201;&#26681;&#25454;&#20855;&#20307;&#38656;&#27714;&#36827;&#34892;&#35843;&#25972;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#20013;&#19978;&#20256;&#22810;&#20010;&#25991;&#20214;&#21487;&#20197;&#36890;&#36807;&#22810;&#31181;&#26041;&#038;#2..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-842","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/842","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=842"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=842"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=842"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=842"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}