cgi 上傳檔案(c 語言) 進度條顯示
- //虛擬機器上搭建apache伺服器上傳檔案
- //1.程式碼:
- #include "stdio.h"
- #include "string.h"
- #include "stdlib.h"
- #include "dirent.h"
- #include <wchar.h>
- #include <assert.h>
- staticint atoii (char *zzzz)
- {
- int i = 0;
- int num=0;
- for(i=0;i<20;i++)
- {
-
if(zzzz[i] >= '0' && zzzz[i] <=
- {
- num = num * 10 + (zzzz[i] - '0');
- }else
- {
- break;
- }
- }
- return num;
- }
- char* getCgiData(FILE* fp, char* requestmethod)
- {
- char* input;
- int len;
- char *pppp;
- int size = 1024;
-
int i = 0;
- if(!strcmp(requestmethod, "GET"))
- {
- input = getenv("QUERY_STRING");
- return input;
- }
- elseif (!strcmp(requestmethod, "POST"))
- {
- pppp=getenv("CONTENT_LENGTH");
- len = atoii(pppp);
-
input = (char
- if (len == 0)
- {
- input[0] = '\0';
- return input;
- }
- fgets(input, len+1, stdin);
- input[len]='\0';
- return input;
- }
- return NULL;
- }
- static unsigned int tmppp=0;
- char *getFileName(unsigned char *req)
- {
- int i;
- int leng;
- tmppp=0;
- char *psz1; char *psz2;
- unsigned char *cur_post,*buf;
- // get filename keyword
- if ((psz1=strstr(req, "filename=")) == NULL)
- {
- return (char *)&tmppp;
- }
- // get pointer to actual filename (it's in quotes)
- psz1+=strlen("filename=");
- if ((psz1 = strtok(psz1, "\"")) == NULL)
- {
- return (char *)&tmppp;
- }
- // remove leading path for both PC and UNIX systems
- if ((psz2 = strrchr(psz1,'\\')) != NULL)
- {
- psz1 = psz2+1;
- }
- if ((psz2 = strrchr(psz1,'/')) != NULL)
- {
- psz1 = psz2+1;
- }
- return psz1;
- }
- main()
- {
- char *reqMethod;
- char *wp;
- char *var=NULL;
- int len;
- long total,i,count;
- char *fileName,*ps1,*ps2;
- char *fileN;
- char Boundary[256];
- char errorBuf[200]="";
- char tmpBuf[512];
- char filePath[256]="/usr/local/apache2/webdav/";//directory of uploaded file
- FILE *fileBuf=NULL;
- reqMethod=getenv("REQUEST_METHOD");
- len=atoii(getenv("CONTENT_LENGTH"));
- printf("%s","Content-type:text/html \r\n\r\n");
- //printf("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html;charset=UTF-8\"></head>");
- Boundary[0] = '\r';
- Boundary[1] = '\n';
- Boundary[2] = '\0';
- if (fgets(&Boundary[2], sizeof(Boundary)-2, stdin) == NULL)
- {
- sprintf(errorBuf,"%s","Get boundary failed !");
- goto error;
- }
- //strip terminating CR / LF
- if ((ps1=strchr(&Boundary[2],'\r')) != NULL)
- {
- *ps1 = '\0';
- }
-
相關推薦
cgi 上傳檔案(c 語言) 進度條顯示
//虛擬機器上搭建apache伺服器上傳檔案 //1.程式碼: #include "stdio.h" #include "string.h" #include "stdlib.h" #include "dirent.h" #include <wchar.h> #i
HTML5 jQuery+FormData 非同步上傳檔案,帶進度條
利用jQuery和html5的FormData非同步上傳檔案的好處是: 實現很簡單很方便地支援進度條很方便地進行擴充套件和美化 先看看效果圖: 圖片上傳後的結果: 實現步驟如下: 第二步:上傳頁面的html程式碼: [html] view plain
curl post表單上傳檔案(C++)
最近測試如何上傳檔案到伺服器。原來傳照片一致通過binary 形式傳檔案,或者把圖片base64編碼傳圖片。一致沒有用form-data 表單形式傳送資料,今天嘗試下如何使用libcurl提供的API上傳檔案。 Sample code: #include <
springmvc 後臺實現監聽上傳檔案大小及進度
一、首先需要自定義一個監聽進度的listener import javax.servlet.http.HttpSession; import org.apache.commons.fileupload.Progres
Linux下tftp上傳檔案失敗的幾條原因
1. Error code 0: Permission denied 主目錄沒有寫許可權, 可以 chmod 0777 /var/lib/tftpboot 2.Error code 1: File not found 在/etc/xinetd.d/tftp配置檔案中
JS 檔案讀取的進度條顯示方法(FileReader、onprogress)——20181116
這裡FileReader只是從磁碟把檔案讀取到瀏覽器,並沒有傳送到伺服器。參考連結1 參考連結2 <!DOCTYPE html> <html > <head> <meta charset="UTF-8"
HTML 上傳檔案、過濾型別以及顯示大小
HTML: <h>檔案上傳只支援.xlsx格式</h> <form action="/upload" method="post" enctype="multipart/form-data"> <input type="file"
python實現檔案下載(包含進度條顯示,檔案大小顯示,下載速度顯示)
不多說了,直接上程式碼記錄: #!/usr/bin/lgy #-*-coding:utf-8-*- import urllib2,threading from PyQt4.QtGui import * from PyQt4.QtCore import * from pu
Extjs 使用fileupload外掛上傳檔案 帶進度條顯示
一.首先我們看看官方給出的外掛的解釋: 一個檔案上傳表單項具有自定義的樣式,並且可以控制按鈕的文字和 像文字表單的空文字類似的其他特性。 它使用一個隱藏的檔案輸入元素,並在使用者選擇檔案後 在form提交的同時執行實際的檔案上傳。 因為沒有安全的跨瀏覽器以程式設計的方式對file表單項設值的方式,
AngularJS PrimeNG 上傳檔案 進度條
1.思路: 使用p-progressBar,建立一個新畫面,浮在p-fileUpload元件所在頁面上方。當檔案上傳進度達到100%時,隱藏該新頁面。 2.父頁面程式碼實現: 使用AngularJ
SpringMVC之檔案上傳(進度條顯示)
親測可用 1、mvc-config.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"
H5上傳檔案進度條
首先推薦一波我的網站 iscoser.com。 關於原生標籤上傳檔案,之前有寫過兩篇:分別是H5標籤上傳檔案(功能實現)和H5標籤上傳檔案(樣式美化)。 這一篇我們要講的是上傳檔案時的上傳進度監聽(進度條的實現)依賴jQuery !。 jQuery預設使用的XMLHttpRequ
ajax利用html5新特性帶進度條上傳檔案
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <
ajax FormData上傳檔案和資料,上傳進度條顯示
http://www.jb51.net/article/114003.htm 一、基於input 方式formData上傳檔案和資料: <divclass="startleft describebox"> <labelclass="title">商
檔案上傳進度條顯示
<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>Insert title here</title> <style>
1次ajax請求(XMLHttpRequest)上傳多個檔案,支援進度條
封裝了一個ajax多檔案上傳,功能就是選擇多個檔案,用ajax上傳。 呼叫方式也很簡單,寫一個json物件做為引數配置,設定要上傳的服務端url以及選擇檔案和上傳完成等的事件處理函式,new一個AjaxUploadX物件,呼叫selectFiles方法選擇檔案,呼叫upla
C#在WinForm下使用HttpWebRequest上傳檔案並顯示進度
這段時間因專案需要,要實現WinForm下的檔案上傳,個人覺得采用FTP方法太麻煩,還得配置FTP伺服器,要通過防火牆也是一個麻煩。本來打算採用WebClient方法,但是採用這個方法實現後,進度條很短時間後就達到最大值,要等待一段時間才能傳送完畢,要是檔案太大(我這裡測試約
原生JS實現ajax上傳檔案並顯示進度條
html程式碼 <progress id="progressbar" value="0" max="100" style="width:300px;"></progress>
oss上傳檔案進度條展示
使用者上傳檔案至oss的時候需要增加一個進度條展示,查看了官方文件及網上幾篇部落格後整理一下相關思路,在此記錄一下自己的成長。 在此以上傳視訊為例,自定義監聽監聽檔案上傳進度,通過將位元組數和總位元組數之間比例寫入session中返回給前端進行進度展示。 priv
簡單的實現上傳檔案進度條
實現檔案上傳(即input標籤的file型別),可以使用XMLHttpRequest物件中的upload屬性的progress事件,該事件的事件物件可以返回上傳進度相關資料 XMLHttpRequestObject.upload.onprogress = function(e){}; 其中e.loaded表示