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

nginx上傳圖片

發布時間: 2022-08-19 21:19:05

1. 怎麼上傳圖片到nginx伺服器

最簡單方法,下載SSH客戶端,SSH Secure File Transfer Client用這個可以直接上傳

2. 如何解決nginx上傳大文件的限制

通過設置nginx的client_max_body_size解決nginx+php上傳大文件的問題:

用nginx來做webserver的時,上傳大文件時需要特別注意client_max_body_size這個參數,否則會中斷在nginx的請求中,在php中是無法記錄到訪問的.

一般上傳大文件流程:

首先修改php.ini文件:
file_uploads on 是否允許通過HTTP上傳文件的開關。默認為ON即是開
upload_tmp_dir – 文件上傳至伺服器上存儲臨時文件的地方,如果沒指定就會用系統默認的臨時文件夾
upload_max_filesize 8m 望文生意,即允許上傳文件大小的最大值。默認為2M
post_max_size 8m 指通過表單POST給PHP的所能接收的最大值,包括表單里的所有值。默認為8M

一般來說,設置好上述四個參數後,在網路正常的情況下,上傳<=8M的文件是不成問題的

但如果要上傳>8M的大文件的話,只設置上述四項還不一定能行的通。除非你的網路真有100M/S的上傳高速,否則你還得繼續設置下面的參數。
max_execution_time 600 每個PHP頁面運行的最大時間值(秒),默認30秒
max_input_time 600 每個PHP頁面接收數據所需的最大時間,默認60秒
memory_limit 8m 每個PHP頁面所吃掉的最大內存,默認8M

webserver用的是nginx,在nginx的conf中添加了一個參數:

默認是1M,需要增大的話。

在nginx.conf中增加一句
client_max_body_size 30m;

重啟即可

30m表示最大上傳30M,需要多大設置多大。

3. nginx負載均衡時上傳的圖片怎麼處理

區域網內可以考慮 rsync + inotify-tools

inotify可以監控文件系統的各種變化,當文件有任何變動時,就觸發rsync同步,這樣剛好解決了同步數據的實時性問題。

區域網內多台伺服器時可以配置Nginx把上傳等寫操作固定到其中一台PHP-FPM伺服器,然後用inotify+rsync同步到其它機器.

比如上傳操作定向到伺服器192.168.1.10進行處理:
location ^~ /upload.php {
include fastcgi_params;
fastcgi_pass 192.168.1.10:9000;
fastcgi_param SCRIPT_FILENAME /srv/www$fastcgi_script_name;
}
在伺服器192.168.1.10上用inotify+rsync同步文件到其他伺服器. 除上傳外,刪除、更改、移動等寫操作也要定向到192.168.1.10這台伺服器進行處理。

4. java項目如何實現上傳圖片到項目外部,訪問時使用相對於域名的相對路徑 系統架構大致是jboss+nginx

我有一段上傳圖片的代碼,並且可以根據實際,按月或按天等,生成存放圖片的文件夾
首先在JSP上放一個FILE的標簽這些我都不說了,你也一定明白,我直接把處理過程給你發過去
我把其中存到資料庫中的內容刪除了,你改一下就能用
/**
*
* 上傳圖片
* @param servlet
* @param request
* @param response
* @return
* @throws Exception
*/

//這里我是同步上傳的,你隨意
public synchronized String importPic(HttpServlet servlet, HttpServletRequest request,HttpServletResponse response) throws Exception {
SimpleDateFormat formatDate = new SimpleDateFormat("yyyyMM");
Date nowtime=new Date();
String formatnowtime=formatDate.format(nowtime);
File root = new File(request.getRealPath("/")+"uploadfile/images/"+formatnowtime+"/"); //應保證在根目錄中有此目錄的存在 如果沒有,下面則上創建新的文件夾

if(!root.isDirectory())
{
System.out.println("創建新文件夾成功"+formatnowtime);
root.mkdir();
}
int returnflag = 0;
SmartUpload mySmartUpload =new SmartUpload();
int file_size_max=1024000;
String ext="";
String url="uploadfile/images/"+formatnowtime+"/";

// 只允許上載此類文件
try{
// 初始化
mySmartUpload.initialize(servlet.getServletConfig(),request,response);
mySmartUpload.setAllowedFilesList("jpg,gif,bmp,jpeg,png,JPG");
// 上載文件

mySmartUpload.upload();
} catch (Exception e){
response.sendRedirect()//返回頁面
}

com.jspsmart.upload.File myFile = mySmartUpload.getFiles().getFile(0);
if (myFile.isMissing()){ //沒有選擇圖片做提示!
returnflag = 3;
}else{
String myFileName=myFile.getFileName(); //取得上載的文件的文件名
ext= myFile.getFileExt(); //取得後綴名
if(ext.equals("jpg")||ext.equals("gif")||ext.equals("bmp")||ext.equals("jpeg")||ext.equals("png")||ext.equals("JPG")){ //jpeg,png不能上傳!)
int file_size=myFile.getSize(); //取得文件的大小
String saveurl="";
if(file_size<file_size_max){
try{
//我上面說到,把操作資料庫的代友刪除了,這里就應該是判斷,你的圖片是不是已經存在了,存在要怎麼處理,不存在要怎麼處了,就是你的事了 }
//更改文件名,取得當前上傳時間的毫秒數值
Calendar calendar = Calendar.getInstance();
//String filename = String.valueOf(calendar.getTimeInMillis());
String did = contractBean.getMaxSeq("MULTIMEDIA_SEQ");
String filename = did;
String flag = "0";
String path = request.getRealPath("/")+url;
String ename = myFile.getFileExt();
//.toLowerCase()轉換大小寫
saveurl=request.getRealPath("/")+url;
saveurl+=filename+"."+ext; //保存路徑
myFile.saveAs(saveurl,mySmartUpload.SAVE_PHYSICAL);
//將圖片信息插入到資料庫中
// ------上傳完成,開始生成縮略圖-----
java.io.File file = new java.io.File(saveurl); //讀入剛才上傳的文件
String newurl=request.getRealPath("/")+url+filename+"_min."+ext; //新的縮略圖保存地址
Image src = javax.imageio.ImageIO.read(file); //構造Image對象
float tagsize=200;
int old_w=src.getWidth(null);
int old_h=src.getHeight(null);
int new_w=0;
int new_h=0;
int tempsize;
float tempdouble;
if(old_w>old_h){
tempdouble=old_w/tagsize;
}else{
tempdouble=old_h/tagsize;
}
// new_w=Math.round(old_w/tempdouble);
// new_h=Math.round(old_h/tempdouble);//計算新圖長寬
new_w=150;
new_h=110;//計算新圖長寬
BufferedImage tag = new BufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);
tag.getGraphics().drawImage(src,0,0,new_w,new_h,null); //繪制縮小後的圖
FileOutputStream newimage=new FileOutputStream(newurl); //輸出到文件流
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(newimage);
encoder.encode(tag); //近JPEG編碼
newimage.close();
returnflag = 1;
}else{
returnflag = 0;
System.out.println("('上傳文件大小不能超過"+(file_size_max/1000)+"K');");
}
}else{
returnflag = 2;
}
}
response.sendRedirect();
return "11";
}

如果對您有幫助,請記得採納為滿意答案,謝謝!祝您生活愉快!

vaela

5. nginx 上傳文件502

將網上找到的一些和502BadGateway錯誤有關的問題和排查方法列一下,先從FastCGI配置入手:1.FastCGI進程是否已經啟動2.FastCGIworker進程數是否不夠運行netstat-anpo|grep「php-cgi」|wc-l判斷是否接近FastCGI進程,接近配置文件中設置的數值,表明worker進程數設置太少3.FastCGI執行時間過長根據實際情況調高以下參數值fastcgi_connect_timeout300;fastcgi_send_timeout300;fastcgi_read_timeout300;4.FastCGIBuffer不夠nginx和apache一樣,有前端緩沖限制,可以調整緩沖參數fastcgi_buffer_size32k;fastcgi_buffers832k;5.ProxyBuffer不夠如果你用了Proxying,調整proxy_buffer_size16k;proxy_buffers416k;6.https轉發配置錯誤正確的配置方法

6. 上傳文件到nginx伺服器很慢怎麼解決

也可能是伺服器網路和本地網路互聯互通的問題。比如您本地是電信寬頻。伺服器是聯通或者其他非電信的。這類可能會出現您的這種情況。

7. nginx怎麼配置禁止上傳除了圖片,html,css等之外格式的文件

上傳控制項自帶過濾類型的屬性accept,比如:
<input id="FileUp" type="file" accept=".jpg,.png,.gif,.htm,.html,.css" />

8. Nginx作為上傳圖片伺服器的時候,java.net.SocketException: Permission denied: connect

lnmp架構 直接放nginx的web文件夾中,通過cgi解析php返回給nginx,如果是lnmpa架構,就是多了個apache,nginx負責分發請求,然後apache調用php_mod解析php,最後返回給nginx

如果是負載均衡,nginx分發請求,每個請求可能請求不同的伺服器,但是每個伺服器的網站程序應該是一致的,並且每個伺服器上都部署了php環境和程序,然後返回給請求者nginx輸出頁面。

9. nginx搭建圖片伺服器 web應用如何實現圖片上傳

通過severlet上傳圖片是可以的,甚至用手工方式上傳也可以
因為調用讀取這些圖片的話,不用調用severlet,直接調用nginx即可
nginx本身就可以實現靜態資源的web服務

熱點內容
給字元加密 發布:2025-05-13 22:12:32 瀏覽:971
資料庫系統實現答案 發布:2025-05-13 22:11:57 瀏覽:139
哪個軟體可以共存安卓 發布:2025-05-13 22:10:15 瀏覽:552
上傳宦妃天下野泉肉肉 發布:2025-05-13 22:10:10 瀏覽:408
洗眼睛解壓 發布:2025-05-13 21:58:28 瀏覽:272
c存儲指針 發布:2025-05-13 21:49:04 瀏覽:921
結繩編程軟體 發布:2025-05-13 21:49:03 瀏覽:850
解壓體育館 發布:2025-05-13 21:27:48 瀏覽:263
哪家編程課 發布:2025-05-13 21:27:04 瀏覽:895
為什麼文件要壓縮 發布:2025-05-13 21:16:07 瀏覽:50