سلام
پروژه من توی لوکال درست آپلود میکنه
ولی الان که به هاست انتقال دادم مسیر آپلود درسته و توی هاست درست ثبت میشه ولی تصویرم میره توی پوشه image که قبل از PUBLIC_HTML هست اونجا ریخته میشه و توی سایت نمایش نمیده.
کد آپلود تصویرمم به کد زیر تغییر دادم و setting url یه متغیر سراسری هست که آدرس سایت را میده ولی بازم میره قبل از روت آپلود میشه
$fileCard = $request->file('pic_cart');
$typeImage = $fileCard->getClientOriginalExtension();
$nameFileCard = $fileCard->getClientOriginalName();
$newName = time() . "_" . md5($nameFileCard) . "." . $typeImage;
$path = setting('url').'/images';
$fileCard->move($path, $newName);
$cart_insert = '/images/' . $newName;
خب خودم مشکلو پیدا کردم
اینجا مینویسم که بقیه هم که مشکل منو دارن استفاده کنن
همونطور که میدونین باید کل لاراول به جز پوشه public بره توی پوشه ای دلخواه قبل از روت هاست
حالا کد index را اینجوری تغییر بدین
require __DIR__.'/../yasin/vendor/autoload.php';
$app = require_once __DIR__.'/../yasin/bootstrap/app.php';
کلمه yasin اسم پوشه ای که پروژه داخلش ریخته شده
حالا فایل serve.php هم اینجوری تغییر بدین
if ($uri !== '/' && file_exists(__DIR__.'/../public_html'.$uri)) {
return false;
}
require_once __DIR__.'/../public_html/index.php';
و در نهایت هم فایل AppServiceProvider.php در مسیر app/Providers را به اینصورت تغییر بدین
$this->app->bind('path.public', function() {
return realpath(base_path().'/../public_html');
});
تامام . عکسای آپلودیتون خوشگل میرن توی روت هاست 😅
@juza66 @mohsenbostan @hesammousavi سلام
آقا من این کد هم قرار دادم ولی الان یه پوشه به اسم public_html توی قسمت فایل های پروژه ساخت و توی اون ریخت تصویرو 😂😂😂
https://roocket.ir/discuss/2302
من اینجوری پروژه را ریختم رو هاست ببینین درسته ؟
تمام فایلهای Laravel را توی یه پوشه به اسم yasin ریختم که قبل از PUBLIC_HTML هاست هست و محتویات توی پوشه public هم ریختم توی روت سرور که PUBLIC_HTML هست و فایلindex.php توی روت را ادیت کردم و در 2 مسیر زیر را به این شکلی که هست تغیر دادم
require __DIR__.'/../yasin/vendor/autoload.php';
$app = require_once __DIR__.'/../yasin/bootstrap/app.php';
بعدش تویappserviceProvider هم اینطوری انجام دادم
public function register()
{
$this->app->bind('path.public', function() {
return base_path().'/public_html';
});
}
اینم کد آپلود تصویرمه
if ($request['pic_cart'] != null) {
$fileCard = $request->file('pic_cart');
$typeImage = $fileCard->getClientOriginalExtension();
$nameFileCard = $fileCard->getClientOriginalName();
$newName = time() . "_" . md5($nameFileCard) . "." . $typeImage;
$path = public_path('/images');
$fileCard->move($path, $newName);
$cart_insert = '/images/' . $newName;
} else {
$cart_insert = $request['old_cart'];
}
مسیر تصویر در دیتابیس درست وارد میشه به اینصورت
/images/45154848484-544848411556.jpg
ولی مشکل اینه که عکس آپلودی میره توی پوشه خود لاراول در پوشه image ریخته میشه و توی روت نمیاد
اینم کد htaccess
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
یه مشکل دیگه هم دارم
هرجا که درکمه ثبت فرم هست که با post و یا get فرستاده میشه وقتی میزنم خطای 404 میده
در صورتی که روی لوکال همه چیز درسته
برای این که خطای 404 نگیری فایل htaccess رو به این صورت بزار باشه
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
<IfModule mime_module>
AddHandler application/x-httpd-ea-php72 .php .php7 .phtml
</IfModule>
# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php72” package as the default “PHP” programming language.
<IfModule mime_module>
AddHandler application/x-httpd-ea-php72 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
اون قسمتی که توی فایل ایندکس تغییر دادی رو به حالت اول برگردون
بعدش تویappserviceProvider هم این بزار باشه و باز امتحان کن
$this->app->bind('path.public', function() {
return base_path().'/public_html';
});
خب خودم مشکلو پیدا کردم
اینجا مینویسم که بقیه هم که مشکل منو دارن استفاده کنن
همونطور که میدونین باید کل لاراول به جز پوشه public بره توی پوشه ای دلخواه قبل از روت هاست
حالا کد index را اینجوری تغییر بدین
require __DIR__.'/../yasin/vendor/autoload.php';
$app = require_once __DIR__.'/../yasin/bootstrap/app.php';
کلمه yasin اسم پوشه ای که پروژه داخلش ریخته شده
حالا فایل serve.php هم اینجوری تغییر بدین
if ($uri !== '/' && file_exists(__DIR__.'/../public_html'.$uri)) {
return false;
}
require_once __DIR__.'/../public_html/index.php';
و در نهایت هم فایل AppServiceProvider.php در مسیر app/Providers را به اینصورت تغییر بدین
$this->app->bind('path.public', function() {
return realpath(base_path().'/../public_html');
});
تامام . عکسای آپلودیتون خوشگل میرن توی روت هاست 😅
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟