當前位置:首頁 » 文件管理 » laravel圖片上傳

laravel圖片上傳

發布時間: 2022-07-06 01:16:02

A. laravel5.1怎樣實現多圖上傳

1.新建用戶,上傳頭像的時候,我們先要配置一下網站所用的伺服器,這里介紹MAC下apache伺服器的配置,編輯/etc/apache2/extra目錄下的httpd-vhosts.conf

控制器:

前端顯示界面:

這段代碼會在前端頁面繪制出這樣一個控制項:

為了實現點擊按鈕彈出選擇圖片的本地文件選擇框,我們還需要編寫js代碼:

2.第二種方式存在於獲取用戶信息並編輯的情況
控制器:

需要根據當前要編輯的對象進行資料庫的查表操作,
前段顯示界面和第一種方法的一樣,只是這里的js代碼不一樣:

所以根據這兩點可見很多處理都是可以分為前端處理還是後端處理的。
PS:
補充幾點代碼解讀:

1.<div id="lessonPreview"></div>
2.<div class="form-group">
3. <div class="btn btn-default btn-file">
4. <i class="fa fa-paperclip"></i>上傳封面圖片
5. <input name="photo1" required id="lesson" type="file"/>
6. </div>
7. <p class="help-block">最大不超過2MB</p>
</div>
上面的第五行代碼是獲取上傳圖片的信息,required id = "lesson"將和js文件的這一行代碼對應:
$("#lesson").on('change', function () {

if (typeof (FileReader) != "undefined") {

var image_holder = $("#lessonPreview");
image_holder.empty();

var reader = new FileReader();
reader.onload = function (e) {
$("<img />", {
"src": e.target.result,
"class": "cover_small"
}).appendTo(image_holder);

};
image_holder.show();
reader.readAsDataURL($(this)[0].files[0]);
} else {
alert("你的瀏覽器不支持FileReader介面。無法看到圖片預覽");
}
});
這個函數處理圖片,將圖片放置圖床上var image_holder = $("#lessonPreview") 然後返回上上張圖的第一行進行顯示。

B. 把laravel上傳至伺服器

apache伺服器的話 .htaccess文件來控制文件的訪問和跳轉,laravel的public里也是寫有.htaccess文件來控制路由的。

C. laravel 收不到iOS上傳的文件

首先使用 request 接收到圖片然後保存;保存在了 storage/app/public 文件夾下;然後根據文檔想要公開訪問該文件夾,需要創建一個符號鏈接;然後運行 php artisan storage:link 創建了符號鏈接;此時 public 文件夾下多了一個 storage 文件夾;里邊的文件就是 storage/app/public 里的文件。

D. laravel怎麼修改上傳文件的臨時保存路徑啊 原本是storage\app

上傳文件的臨時保存路徑是在php.ini中設置的,如
upload_tmp_dir = "e:/wamp/tmp"
各種開發框架或開源產品中需要修改的是上傳文件的最終保存地址。

E. laravel 怎麼限制上傳文件大小

本地和線上都是nginx,先配好rewrite規則(就是把.htaccess裡面的規則原樣翻譯到nginx.conf裡面去)
伺服器上,我是直接導sql, 畢竟我還不習慣用php命令去創建資料庫,當然了,這個見仁見智了,laravel的遷移功能是很強大的,在同步本地和線上資料庫方面,實在是簡單之至,若你用它的遷移功能操作的話,畢竟只是寫個php腳本,傳到伺服器再執行一下就行了,都不用在伺服器登錄mysql客戶端去操作了.
vender 的是在伺服器上當然要用 composer 安裝了, 一來vendor太大,用直接上傳或者ftp都太慢,二來,用composer的話,可以獲得laravel本身以及vendor裡面各組件的最新穩定版本.

我是目前還沒在伺服器上用 artisan, 只用 composer 進行整個框架的安裝,php composer install laravel/laravel 之後, 再把本地的app和public上傳覆蓋, 就可以運行了(記得配置根目錄指向public目錄,不然還得自己配置路徑)
1. 記得 chmod -R 777 app/storage , 不給這個目錄寫許可權, 是運行不了的
2. 記得在線上版的app/config/app.php 裡面, 使用一個32位隨機的 KEY, 然後將 debug 改為false, 不然任何錯誤都會直接顯示出來, 太不安全了

F. 如何高效地學習 Laravel 框架

推薦學習路徑

1. 框架的使用知識學習

基於以上的思想,我創建了 《Laravel 實戰課程》,計劃中有三本(也有可能更多),分別是:

  • 第一本 —— 《Laravel 入門教程 - 從零到部署上線》

  • 第二本 —— 《Laravel 進階課程 - 從零開始構建論壇系統》

  • 第三本 —— 《Laravel 高級課程 - 構架 API 伺服器》

  • 第一本書教授如何使用 Laravel 一步一步構建一個類似新浪微博的應用,書中很多技術話題會被一帶而過,這是有意而為之的,我們希望讓讀者保持對編碼線索的專注,不被篇幅悠長的名詞解釋分心。通過閱讀本教程,你將學到如 HTML、CSS、JavaScript、PHP 和 Laravel 等 Web 開發相關的基礎知識。不僅如此,本書還會對這些基礎知識點進行延伸擴展,為你講解一些在 Web 開發中更為專業、實用的技能,如 Git 工作流、Laravel Mix 前端工作流、Bootstrap 框架基本使用等。這些知識將為你未來的編程開發奠定下堅實的基礎。

    第二本以構建論壇項目 LaraBBS 為線索,展開對 Laravel 框架的全面學習。編碼規范遵循 Laravel 項目開發規范 ,應用程序架構思路貼近 Laravel 框架的設計哲學。在論壇系統的構建中,我們將學到多角色用戶許可權系統、管理員後台、注冊驗證碼、圖片上傳、圖片裁剪,XSS 防禦、自定義命令行、自定義中間件、任務調度、隊列系統的使用、應用緩存、Redis、模型事件監控、表單驗證、消息通知、郵件通知、模型修改器等知識。在本課程的學習中,你不僅能學到使用 Laravel 開發一個論壇項目,還能學到安全優先、高擴展性的大型項目架構經驗。

    第三本將以構建 API 伺服器為目標,來展開。目前本課程正在緊張撰寫中,敬請期待。

    2. 框架的底層實現學習

    學完了以上三本書,你將擁有一定的項目開發經驗,對框架的功能使用也會有一個比較全面的系統性理解。這時候,會是學習『底層實現』的好時機。

    底層實現的知識學習,可以從文檔開始,打開 Laravel 的文檔中心 ——d.laravel-china.org,找到最新版本的 Laravel 文檔,然後仔細閱讀 2、3 遍。因為有了上面的項目經驗,此時的文檔閱讀啃起來會輕松多了。
    閱讀文檔後,可以嘗試看下 Laravel 底層的源碼,看看這些框架的功能都是怎麼實現的。

    學習過程中可以適當做筆記,例如:

  • zhangbao同學的Laravel 文檔閱讀筆記

  • leoyang同學的Laravel 源碼分析筆記

  • 錯誤的學習方法

    一上來就開始啃文檔d.laravel-china.org。

    如果你是新手,有太多的新概念你需要學習,你會發現學習起來非常艱難,甚至懷疑文檔是不是寫的太爛了(社區里經常出現這種抱怨)。
    事實上,不是文檔寫的太爛,而是你把文檔用錯了。文檔的『目的』是快速查閱,一份優秀文檔的標準是語言簡練,釋義,這個 Laravel 的文檔做的很棒。但是,文檔並不適合做入門學習使用,上面我們已經講過,原因是信息量太大。

    尋找網路上零散的課程進行學習。

    如果你想學習單個概念,這些零散的小課程會很方便。但是,如果是想以閱讀大量課程來達到系統性學習的目的,你將會很失望。很多時候你會感覺 —— 你好像學了很多,學了很久,以為自己學會了,但是心裡還是沒底氣。
    你需要的是通過項目,完整的項目,將所有的知識串起來去記憶。你的作品,清清楚楚擺在面前,看著你一步步構建出來的一套系統,自信心也會有所增加。

    一開始就學習高級話題,如服務容器、服務提供器、Facades、Contracts、Repository 等

    很多時候你會發現這些話題晦澀難懂,很難學習。並且即使你毅力比較好,死記硬背,很快也會忘記,學習效率非常低下。然後最重要的,學會這些概念,並無法使你掌握構建一個完整項目的能力。

G. laravel下有哪些包值得推薦

Carbon
Laravel 其實已經包含了這個擴展包了,但是我覺得有必要單獨提一下,因為用得還是比較多的。在日期處理方面的確幫了很大忙。
Debugbar
這個擴展包能夠提供更多深層的運行信息,方便你修復bug,讓應用高效、流暢的運行。
Envoy
Envoy 能幫你在遠程系統上運行 SSH 命令。在本地系統和遠程部署時它都幫了很大的忙。
Laravel DomPDF
這個擴展包將 DomPDF 庫包裝成 Laravel 化的調用語法,讓創建 PDF 很輕松。
Laravel Generators
使用生成器能夠加速開發過程。它所包含的指令幾乎涵蓋了 Laravel 開發中的方方面面。
Laravel IDE Helper
如果你在使用 PhpStorm,那麼這個工具包是必須要裝的。我在所有項目中都使用了它,這讓 IDE 使用起來很 nice。
Intervention
每個項目幾乎都要處理圖片上傳的功能,Intervention 讓圖片上傳和處理 so easy!
Parsedown
解析 Markdown 就靠它了!快速、穩定、易於使用。

H. laravel框架中怎麼實現多文件上傳

一、使用工具:laravel、軟體編寫程序
二、方法步驟:
1、配置本地文件系統
讓我們從配置開始吧,我們在 public 目錄下創建一個 uploads 目錄用來存放上傳的文件,這樣所有上傳文件都可以通過瀏覽器直接訪問。
首先我們在博客項目目錄下使用如下命令在 public 目錄下創建 uploads 子目錄:

很簡單。接下來我們來編輯 config/blog.php:

我們在 uploads 配置項中使用 storage 定義使用的文件系統,使用 webpath 定義 web 訪問根目錄。
最後,編輯 config/filesystems.php 如下:

2、創建幫助函數文件
在 Laravel 5.1 項目中有時我們會需要一些不依賴於類的輔助函數,通常我們會將這些輔助函數定義在一個單獨文件如 helpers.php 中。我們在 app 目錄下創建這個名為 helpers.php 的文件,並編輯其內容如下:

其中 human_filesize() 函數返回一個易讀的文件尺寸,is_image() 函數在文件類型為圖片的時候返回 true。
要讓應用能夠正確找到 helpers.php 文件,還要修改項目根目錄下的 composer.json:
在 autoload 配置項的 files 數組中指定要被載入的文件/文件夾。修改完成後記得運行 composer mpauto 確保修改生效:

現在 helpers.php 中的所有函數都會載入到自動載入器中,你可以在博客應用的代碼中任意使用其中的函數。
3、創建文件上傳管理服務
現在基本配置已經完成了,讓我們創建一個服務類來管理上傳文件。
檢測文件 MIME 類型
我們想要基於不同類型的上傳文件進行不同的操作,這可以通過檢測上傳文件 MIME 類型輕松實現。
PHP 有一個內置函數 mime_content_type() 用於檢測文件的MIME類型,但是該函數已經廢棄了,我們使用另一個解決方案。
在 Packagist 中搜索 「mime」 會查詢到一個名為 dflydev 的包,我們在博客項目中使用 Composer 安裝該依賴包:
我們將使用該依賴包提供的方法來檢測文件的 MIME 類型。
創建UploadsManager類
在 app/Services 目錄下創建 UploadsManager.php,編輯其內容如下:

4、實現文件上傳管理列表
現在 UploadsManager 服務類已經創建,接下來我們來實現控制器的 index 方法。
創建 index 方法
編輯 app/Http/Controllers/Admin 目錄下的 UploadController.php 文件內容如下:
構造方法中注入了 UploadsManager 依賴,在 index() 方法中只需傳入 folderInfo() 返回的數據到要渲染的視圖並返回即可。
你可能已經注意到 $folder 從請求中獲取,是的,我們只需要通過請求參數即可實現文件夾修改。
創建 index 視圖
在 resources/views/admin 目錄下新建 upload 目錄,並在該目錄下創建 index.blade.php 文件,編輯該文件內容如下:

盡管這個模板文件很長,但是理解起來並沒有什麼困難,所有文件上傳和下載管理都將在這里進行。
有沒有注意到我們在最後包含了 admin.upload._modals?是的,我們將模態對話框放到了一個單獨的視圖模板中。現在,我們在 resources/views/admin/upload 目錄下創建一個空的 _modals.blade.php 文件。
上傳管理界面
打開瀏覽器,進入博客應用後台管理頁面,點擊頂部導航條的「上傳」(Uploads)鏈接,將會跳轉到如下頁面:
既漂亮又清爽,有木有?接下來讓我們來實現所有的模態對話框及其背後的業務邏輯。
5、完成文件上傳管理功能
對於完整的文件上傳管理器而言剩下的工作已經不多了,現在是時候完成所有功能了。
添加路由
我們需要為上傳管理器定義所有需要的路由,編輯 app/Http/routes.php 添加如下路由:
定義所有模態對話框
編輯我們之前創建的 _modals.blade.php 文件內容如下:

在該文件中總共有5個不同的模態彈出框,分別對應上面定義的5個路由。
添加表單請求驗證類
使用 Artisan 命令創建 UploadFileRequest,並編輯其內容如下:
使用 Artisan 命令創建 UploadNewFolderRequest,並編輯其內容如下:

同樣,這些請求類用於驗證表單輸入。
完成 UploadController 所有方法
編輯 UploadController.php 文件內容如下:

完成 UploadsManager 服務類
最後編輯 app/Services/UploadsManager.php 內容如下:

至此,已經完成了文件上傳管理的所有工作我們將本地存儲的根目錄修改為前面創建的 public/uploads 目錄。

I. laravel intervention image 怎麼實現頭像上傳

通過 composer 安裝 composer intervention/image
修改 config/app.php 文件,添加 $providers 和 $aliases
'Intervention\Image\ImageServiceProvider'
'Image' => 'Intervention\Image\Facades\Image'
By default Intervention Image uses PHP's GD library extension to process all images. If you want to switch to Imagick, you can pull a configuration file into your application by running on of the following artisan command.
Publish configuration in Laravel 5
$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
Handling image uploads in Laravel
In a Laravel application it is also possible to pass an uploaded file directly to the make method.
Creating Image from File Upload in Laravel

// resizing an uploaded file
Image::make(Input::file('photo'))->resize(300, 200)->save('foo.jpg');

J. 如何將本地的laravel代碼上傳到centos

今天打算在CentOS 7上配置一個Laravel,之前都是在本機上開發,打算實際配置一下。
1)系統上已經安裝了Apache、PHP、mysql,安裝命令為yum install httpd php mysql
因為CentOS 7自帶的php模塊很少,如果需要增加模塊,需要編譯才行,所以需要php-devel模塊,用yum install php-devel命令就可以了。
2)安裝laravel
a)安裝composer:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

b)安裝laravel
composer global require "laravel/installer=~1.1"
這個命令會在~/.composer/vender/bin下安裝一個laravel命令,可以將這個目錄放到系統path里,也可以直接執行
mkdir /opt/www
cd /opt/www
~/.composer/vender/bin/laravel new study
會創建一個study目錄,包含完整的laravel開發必須的文件。
c)配置Apache,將/opt/www/study/public設置為網站主目錄,大致要修改/etc/httpd/conf/httpd,conf的以下內容
DocumentRoot "/opt/www/kangfu/public"
<Directory "/opt/www/kangfu/pubic">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
其實就是修改一下主目錄,將其替換為/opt/www/study/public,就可以了
在瀏覽器里輸入http://ip_addr/,系統會提示沒有php-mcrypt模塊,這個比較麻煩。
3)安裝php-mcrypt
安裝過程可以參考一下http://www.cnblogs.com/ccdc/archive/2013/04/19/3030156.html
基本過程就是下載libmcrypt,mhash,mcrypt的安裝包,依次編譯安裝即可,通常命令依次為
./configure
make
make install
在配置mcrypt時,會提示找不到libmcrypt.so,需要將其所在路徑加入到LD_LIBRARY_PATH,命令為
export LD_LIBRARY_PATH=/user/local/lib;LD_LIBRARY_PATH
然後配置安裝即可。
對於php-mcrypt,需要去下載PHP的源代碼,本機帶的版本為5.4.16,在PHP網站上下載,解壓縮,進入php目錄中,再進入ext/mcrypt,運行
phpize #這個命令用來生成config文件,如果沒有安裝php-devel會出錯。
./configure --with-php-config=/usr/bin/php-config
make
make install
在/etc/httpd/conf.d/下,運行echo 'extension=mcrypt.so' > mcrypt.ini
在瀏覽器中輸入http://ip_addr/就可以看到啟動頁面了
其實這個過程非常簡單,只不過讓我對PHP新增模塊的方法有了一定的了解,學了一點東西。Laravel學習筆記(三)--在CentOS上配置Laravel

熱點內容
全鍵盤編程鍵盤 發布:2025-01-16 01:38:59 瀏覽:421
尾貨棉服直播間腳本 發布:2025-01-16 01:21:45 瀏覽:227
vb編程步驟 發布:2025-01-16 01:11:58 瀏覽:201
bb霜解壓 發布:2025-01-16 01:11:11 瀏覽:596
編程懟人 發布:2025-01-16 00:53:08 瀏覽:760
建立共享伺服器地址 發布:2025-01-16 00:26:40 瀏覽:565
android開機動畫修改 發布:2025-01-16 00:26:26 瀏覽:872
怎麼解壓pc版游戲 發布:2025-01-16 00:16:32 瀏覽:122
v9更新到91有方舟編譯器嗎 發布:2025-01-16 00:11:49 瀏覽:500
AB系統編程 發布:2025-01-16 00:09:37 瀏覽:621