當前位置:首頁 » 文件管理 » cweb上傳文件

cweb上傳文件

發布時間: 2022-10-03 10:04:53

1. 怎樣把文件上傳至您的域名指向的Web伺服器(或虛擬主機)的根目錄

把這個文件下載下來,然後通過ftp把這個文件傳到你的站點根目錄下即可。

2. 使用CGIC如何實現Web文件上傳大神們幫幫忙

用C語言編寫cgi程序的話,CGIC是非常流行的庫,官方頁面及下載地址為: www.boutell.com/cgic/#obtain 不少網站都有文件上傳的功能,本文展示如何用CGIC庫編寫文件上傳的服務端程序,最後給出一段簡單的HTML代碼,供大家測試使用。//upload.c#include #include #include #include #include #include"cgic.h"#define BufferLen 1024int cgiMain(void){ cgiFilePtr file; int targetFile; mode_t mode; char name[128]; char fileNameOnServer[64]; char contentType[1024]; char buffer[BufferLen]; char *tmpStr=NULL; int size; int got,t; cgiHeaderContentType("text/html"); //取得html頁面中file元素的值,應該是文件在客戶機上的路徑名 if (cgiFormFileName("file", name, sizeof(name)) !=cgiFormSuccess) { fprintf(stderr,"could not retrieve filename\n"); goto FAIL; } cgiFormFileSize("file", &size); //取得文件類型,不過本例中並未使用 cgiFormFileContentType("file", contentType, sizeof(contentType)); //目前文件存在於系統臨時文件夾中,通常為/tmp,通過該命令打開臨時文件。臨時文件的名字與用戶文件的名字不同,所以不能通過路徑/tmp/userfilename的方式獲得文件 if (cgiFormFileOpen("file", &file) != cgiFormSuccess) { fprintf(stderr,"could not open the file\n"); goto FAIL; } t=-1; //從路徑名解析出用戶文件名 while(1){ tmpStr=strstr(name+t+1,"\\"); if(NULL==tmpStr) tmpStr=strstr(name+t+1,"/");//if "\\" is not path separator, try "/" if(NULL!=tmpStr) t=(int)(tmpStr-name); else break; } strcpy(fileNameOnServer,name+t+1); mode=S_IRWXU|S_IRGRP|S_IROTH; //在當前目錄下建立新的文件,第一個參數實際上是路徑名,此處的含義是在cgi程序所在的目錄(當前目錄))建立新文件 targetFile=open(fileNameOnServer,O_RDWR|O_CREAT|O_TRUNC|O_APPEND,mode); if(targetFile<0){ fprintf(stderr,"could not create the new file,%s\n",fileNameOnServer); goto FAIL; } //從系統臨時文件中讀出文件內容,並放到剛創建的目標文件中 while (cgiFormFileRead(file, buffer, BufferLen, &got) ==cgiFormSuccess){ if(got>0) write(targetFile,buffer,got); } cgiFormFileClose(file); close(targetFile); goto END;FAIL: fprintf(stderr,"Failed to upload"); return 1;END: printf("File \"%s\" has been uploaded",fileNameOnServer); return 0;} 假設該文件存儲為upload.c,則使用如下命令編輯:gcc -Wall upload.c cgic.c -o upload.cgi 編譯完成後把upload.cgi復制到你部署cgi程序的目錄(通常命名為cgi-bin)。 正式部署時,請務必修改用open創建新文件那一行代碼。把open的第一個參數設置為目標文件在伺服器上存儲的絕對路徑,或者相對於cgi程序的相對路徑。本例中,出於簡單考慮,在cgi程序所在目錄下創建新文件。

3. C#中使用WebClient.UploadFile上傳文件沒許可權,怎麼改許可權

那個被寫的目錄需要可以被iuser_***寫入許可權
另外要注意寫入時的路徑,如果你是「/upload/abc.txt」,會寫到c:去的
要Server.Map(「/upload/abc.txt」)才會到你虛擬目錄下的upload,否則你怎麼也寫不到你的目錄。

4. 我用C#寫了一個ftp的上傳下載程序是bs架構的請問在web程序使用ftp傳輸文件有什麼好處

WEB空間是用來放網頁的,可以讓別人瀏覽到,就像虛擬空間一樣,一般伺服器需要加裝IIS或APACHE,
而FTP空間則是用來存放文件專門供下載的,也就是說,FTP空間只能上傳和下載,而不能通過IE訪問。這種伺服器不涉及到網站,一般只裝SERVE-U就可以了。

採用的傳輸協議不一樣,一個是HTTP,一個是FTP。

WEB上傳與FTP上傳的區別
WEB上傳:即通過瀏覽器(IE)來上傳文件
FTP上傳:簡稱文件傳輸協議,通過FTP上傳
1,通過IE瀏覽器上傳文件,按照"操作向導"一步步操作完成,用戶無須培訓;
1,上傳之前,需要安裝專業上傳軟體,並對軟體加以學習,用戶需要學習上傳軟體;
2,通過分配用戶許可權發布課件,簡單,安全;
2,需要建立FTP伺服器及配置設置,專業性強;
3,支持斷點續傳,支持大文件上傳;
3,不支持斷點續傳,只能重新上傳,支持大文件上傳;
4,上傳課件屬性(格式,上傳時間,人員等)自動生成,方便快捷;
4,FTP上傳後,需要從後台手工輸入課件屬性,費時費力;
5,上傳後的課件,配有審核機制,保證課件質量;
5,FTP上傳後的課件,沒有審核機制;
6,審核後的課件,自動歸類,用戶通過校園網瀏覽;
6,FTP上傳的課件後需要手工進行歸類,比較煩麻;

5. 如何使用WebService上傳文件至SharePoint 文檔庫中

問題描述: 通過WebService的形式將文件上傳至SharePoint的文檔庫,我認為有2個難點,其中比較好解決的是文件傳輸,這個文件傳輸有好多種辦法,比如使用ftp協議.最難的一個可能就是許可權問題.(原來我的解決方法是正確的,只是模擬用戶的時候域名寫的不對,哈哈,)
我想會有好多人也會遇到這個問題,我的這個解決方法,在一定程度上可以解決一些問題.(^_^),關於身份模擬請參考msdn中的描述。此程序片段不包含目錄驗證的代碼.
這個問題困擾了我好久.我曾經嘗試過多種方法.但一樣的程序,在windows應用程序里運行就ok,一放到webservice里就出問題了.(不過今天晚上又測試了多次,證明我的方法是有效的,興奮中....)
以下是通過文件監控的方式實現的文件上傳程序代碼:(裡面採用了模擬windows用戶的方式模擬當前的操作用戶)
private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
{
Application.DoEvents();
WindowsImpersonationContext wic = null;
if( wic != null ) wic.Undo();
try
{
System.IO.File.Copy(e.FullPath,"c://AresTemp//"+e.Name,true);
FileStream fStream;
fStream= File.OpenRead("c://AresTemp//"+e.Name);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
if(File.Exists("c://AresTemp//"+e.Name)==true)
{
File.Delete("c://AresTemp//"+e.Name);
}

wic =SPUtil.GetWindowsIdentity();
SPWeb myweb=new SPSite(SharePointURL).OpenWeb();
myweb.AllowUnsafeUpdates=true;

myweb.Files.Add(SharePointURL+"/"+e.Name,contents,true);
// if (File.Exists(e.FullPath))
// File.Delete(e.FullPath);
if( wic != null ) wic.Undo();
AresLog.recordLog("文件上傳成功","","",e.Name ,e.FullPath);

}
catch(Exception ee)
{
if( wic != null ) wic.Undo();
AresLog.recordLog("上傳文件異常","","",ee.Message,ee.StackTrace);
}
}
以下是我寫的通過ftp的方式,將文件傳輸到本地,然後讀取本地磁碟文件,上傳到sharpoint文檔庫的代碼:(需要注意域名的書寫,此代碼已經過本機測試成功,但具體環境不同,也可能造成一定的差異)
[WebMethod]
public string UpLoadFilesToSPS(string FtpServer,string FtpUser,string FtpPwd,string FtpPath,string FilesName,string FilesInfo,string targetUrl)
{
//ftp settings
FtpClient myFTP=new FtpClient();
myFTP.Server=FtpServer;
myFTP.Username=FtpUser;
myFTP.Password=FtpPwd;
myFTP.RemotePath=FtpPath;
//filePath,info
string[] fName=Microsoft.VisualBasic.Strings.Split(FilesName,";",-1,Microsoft.VisualBasic.CompareMethod.Text);
string[] fInfo=Microsoft.VisualBasic.Strings.Split(FilesInfo,";",-1,Microsoft.VisualBasic.CompareMethod.Text);
int i=0;
//檢查和創建本地環境
if(Directory.Exists("C://AresTemp")==false)
{
Directory.CreateDirectory("C://AresTemp");
}
foreach(string fDirectory in fInfo)
{
if(Directory.Exists("C://AresTemp//"+fDirectory)==false)
{
Directory.CreateDirectory("C://AresTemp//"+fDirectory);
}
}
//文件下載
for(i=0;i<fName.Length;i++)
{
myFTP.DownloadEx(fName[i],"C://AresTemp//"+fInfo[i]+"//"+fName[i],true);
}
myFTP.Close();
WindowsImpersonationContext wic = null;

if( wic != null ) wic.Undo();
//獲取模擬用戶信息
ZSoft.WindowsImpersonation.WIUser myUser=new ZSoft.WindowsImpersonation.WIUser(ServerUser,ServerName,ServerPassword);
myUser.impersonateValidUser();
wic =myUser.wic;
SPWeb myweb=new SPSite(targetUrl).OpenWeb();
myweb.AllowUnsafeUpdates=true;
for(i=0;i<fName.Length;i++)
{
FileStream fStream;
fStream= File.OpenRead("c://AresTemp//"+fInfo[i]+"//"+fName[i]);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
myweb.Files.Add(targetUrl+"/"+fInfo[i]+"//"+fName[i],contents,true);
}
myweb.Close();
if( wic != null ) wic.Undo();
return "文件傳輸成功!";
}

6. 如何在移動web上上傳文件

webservice怎麼處理移動端的文件上傳
代碼如下:

static public ArrayOfBase64Binary SendFile(string[] fPaths)
{
FileStream fStream;
ArrayOfBase64Binary lstB = new ArrayOfBase64Binary();
int fCount = fPaths.Length;
if (fCount != 0)
{
for (int i = 0; i < fCount; i++)
{
fStream = new FileStream(fPaths[i], FileMode.Open, FileAccess.Read);
Byte[] b = new Byte[fStream.Length];
fStream.Read(b, 0, b.Length);
lstB.Add(b);
fStream.Flush();
fStream.Close();
}

}
return lstB;
static public void AcceptFile(List<Byte[]> lstB)
{
for (int i = 0; i < lstB.Count; i++)
{
string path = "C:\\Down\\" + i + ".jpg";
FileStream fStream = new FileStream(path, FileMode.Create, FileAccess.Write);
fStream.Write(lstB[i], 0, lstB[i].Length);
fStream.Close();
}
}

7. linux下如何實現web上傳並顯示圖片

伺服器配置
1.如果你安裝的Linux版本中帶用Apache的話,就在選擇所要安裝的服務
器的時候,將httpd這個服務選上,Linux安裝程序將自動完成Apache的安裝工
作,並做好基本的配置。

2.使用可執行文件軟體包,這比較適合那些對編譯工作不是太熟悉的初級
用戶,因為它相對比較簡單。

下載軟體包apache_1.2.4.e.tar.gz

tar xvzf apache_1.2.4.e.tar.gz

這就完成了安裝工作,簡單吧!

如果你使用的是RedHat Linux的話,你也可以下載apache_1.2.4.rpm軟體
安裝包,然後使用rpm -ivh apache_1.2.4.rpm命令安裝。

3.如果你想把Apache伺服器充分利用起來的話,就一定要自己編譯
Apache定製其功能。

下載包含Apache源代碼的軟體包apache_1.2.4.tar.gz; 然後用tar命令將它解
開; 將當前目錄改變為Apache源代碼發行版的src目錄; 將配置樣本文件
(Configuration.tmpl)復制為Configuration文件;

編輯Configuration文件中的配置選項:

Makefile配置選項:一些編譯選項:

. "CC="一行指定用什麼編譯軟體編譯,一般為"CC=gcc";

. 如果需要將額外的標志(參數)指定給C編譯軟體,可以使用:

EXTRA_CFLAGS=

EXTRA_LFLAGS=

. 如果系統需要特殊的庫和包含文件,可以在這里指定它們:

EXTRA_LIBS=

EXTRA_INCLUDES=

. 如果你要改變代碼優化設置的話,你須將下面一句去掉注釋,然

後改成你所需要的值:

#OPTIM=-O2

Rule配置選項:用來決定需要什麼功能,一般情況下無需改變。

模塊配置:模塊是Apache的組成部分,它為Apache內核增加新功能。通過使用
模塊配置,可以自定義在Apache伺服器中需要什麼功能,這個部分也是Apache
靈活性的表現。模塊配置行如下所示:

AddMole moles/standard/mod_env.o

如果你需要Apache伺服器具備什麼功能,就將那個模塊用AddMole語句加到配
置文件Configuration中去。

下表列出了Apache的模塊功能:

模塊名 功能 預設

mod_access 提供基於主機的訪問控制命令 y

mod_actions 能夠運行基於MIME類型的CGI腳本或HTTP請求方法 y

mod_alias 能執行URL重定向服務 y

mod_asis 使文檔能在沒有HTTP頭標的情況下被發送到客戶端 y

mod_auth 支持使用存儲在文本文件中的用戶名、口令實現認證 y

mod_auth_dbm 支持使用DBM文件存儲基本HTTP認證 n

mod_auth_mysql 支持使用MySQL資料庫實現基本HTTP認證 n

mod_auth_anon 允許以匿名方式訪問需要認證的區域 y

mod_auth_external支持使用第三方認證 n

mod_autoindex 當缺少索引文件時,自動生成動態目錄列表 y

mod_cern_meta 提供對元信息的支持 n

mod_cgi 支持CGI y

mod_dir 能夠重定向任何對不包括尾部斜杠字元命令的請求 y

mod_env 使你能夠將環境變數傳遞給CGI或SSI腳本 n

mod_expires 讓你確定Apache在伺服器響應請求時如何處理Expires y

mod_headers 能夠操作HTTP應答頭標 y

mod_imap 提供圖形映射支持 n

mod_include 使支持SSI n

mod_info 對伺服器配置提供了全面的描述 y

mod_log_agent 允許在單獨的日誌文件中存儲用戶代理的信息 n

mod_log_config 支持記錄日誌 y

mod_log_referer 提供了將請求中的Referer頭標寫入日誌的功能 n

mod_mime 用來向客戶端提供有關文檔的元信息 y

mod_negotiation 提供了對內容協商的支持 y

mod_setenvif 使你能夠創建定製環境變數 y

mod_speling 使你能夠處理含有拼寫錯誤或大小寫錯誤的URL請求 n

mod_status 允許管理員通過WEB管理Apache y

mod_unique_id 為每個請求提供在非常特殊的條件下保證是唯一的標識 n

在src目錄下執行:". /configure";

編譯Apache:執行命令"make";

根據機器性能的不同,經歷一段5-30分鍾的編譯,就大功告成了。

將編譯好的可執行文件httpd復制到/etc/httpd/bin目錄下;

將Apache發行版的配置文件:access.conf、httpd.conf、mime.types、
srm.conf文件復制到/etc/httpd/conf目錄下。到此為止,安裝完成。

8. C#使用webservice把文件上傳到伺服器

C#使用webservice把文件上傳到伺服器的代碼如下(這里以C:\.jpg這個文件上傳為例):

WebService部分:

///<summary>
///保存文件到遠程伺服器
///</summary>
///<paramname="FileByteArray">待轉換位元組數組</param>
///<paramname="FileLength">位元組長度</param>
///<paramname="SaveToUrl">保存路徑</param>
///<returns>返回是否執行成功</returns>
[WebMethod(Description="保存文件到遠程伺服器.")]
publicboolSaveFile(byte[]FileByteArray,intFileLength,stringSaveToUrl)
{
try
{
FileStreamfs=newFileStream(SaveToUrl,FileMode.OpenOrCreate,FileAccess.Write);
fs.Write(FileByteArray,0,FileLength);
fs.Close();
}
catch{
returnfalse;
}
returntrue;
}

上傳文件調用部分:

protectedvoidButton1_Click(objectsender,EventArgse)
{
MangerPhoto.Servicemp=newMangerPhoto.Service();
Response.Write(mp.SaveFile(getByte(),FileUpload1.PostedFile.ContentLength,"C:\.jpg"));
}privatebyte[]getByte(){//獲得轉化後的位元組數組
//得到用戶要上傳的文件名
stringstrFilePathName=FileUpload1.PostedFile.FileName;
stringstrFileName=Path.GetFileName(strFilePathName);
intFileLength=FileUpload1.PostedFile.ContentLength;
//上傳文件
Byte[]FileByteArray=newByte[FileLength];//圖象文件臨時儲存Byte數組
StreamStreamObject=FileUpload1.PostedFile.InputStream;//建立數據流對像
//讀取圖象文件數據,FileByteArray為數據儲存體,0為數據指針位置、FileLnegth為數據長度
StreamObject.Read(FileByteArray,0,FileLength);
returnFileByteArray;
}

9. 怎樣修改web.config上傳文件大小

[html] view plain
Asp.Net配置Web.Config更改默認上傳文件大小限制!(適用於win7\win2003的IIS)

[html] view plain

[csharp] view plain
<system.web>

<httpRuntime maxrequestLength="1073741824" executionTimeout="3600"/> <!--maxRequestLength就是文件的最大字元數,最大值不能超過2個G左右,executionTimeout是超時時間-->

<compilation debug="true" targetFramework="4.0" />
</system.web>

以下是網上其他人的答案,僅供參考:

修改IIS的applicationhost.config
打開 %windir%/system32/inetsrv/config/applicationhost.config
找到: <requestFiltering>節點,
這個節點默認沒有 <requestLimits maxAllowedContentLength="上傳大小的值(單位:byte)" /> 元素,IIS 7和IIS 7.5上測試過 最大值只能是<requestLimits maxAllowedContentLength="4294967295" /> <4GB,
為這個節點新增如下事例元素:<requestLimits maxAllowedContentLength="2147483647" /> ,上傳的大小將改為2G
注意: %windir%/system32/inetsrv/config/applicationhost.config 文件一定不要用其他機器的文件替換,否則IIS將無法啟動
此文件記錄了,當前IIS中所有Site , App pool的信息,還有一些與機器相關的配置。

web.config下如果有如下節點(此節點是為IIS 7設計的) ,則修改
<requestLimits maxAllowedContentLength="2147483647" /> 單位與applicationhost.config中的<requestLimits maxAllowedContentLength="2147483647" />一致,它的最大值也只能為4294967295
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483647" />
</requestFiltering>
</security>
</system.webServer>
總結:asp.NET(IIS 7 and IIS 7.5)上傳文件的最大值不能超過2GB

10. 如何使用web server上傳文檔

我想會有好多人也會遇到這個問題,我的這個解決方法,在一定程度上可以解決一些問題.(^_^),關於身份模擬請參考msdn中的描述。此程序片段不包含目錄驗證的代碼.
這個問題困擾了我好久.我曾經嘗試過多種方法.但一樣的程序,在windows應用程序里運行就ok,一放到webservice里就出問題了.(不過今天晚上又測試了多次,證明我的方法是有效的,興奮中....)
以下是通過文件監控的方式實現的文件上傳程序代碼:(裡面採用了模擬windows用戶的方式模擬當前的操作用戶)
private void fileSystemWatcher1_Created(object sender, System.IO.FileSystemEventArgs e)
{
Application.DoEvents();
WindowsImpersonationContext wic = null;
if( wic != null ) wic.Undo();
try
{
System.IO.File.Copy(e.FullPath,"c://AresTemp//"+e.Name,true);
FileStream fStream;
fStream= File.OpenRead("c://AresTemp//"+e.Name);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
if(File.Exists("c://AresTemp//"+e.Name)==true)
{
File.Delete("c://AresTemp//"+e.Name);
}

wic =SPUtil.GetWindowsIdentity();
SPWeb myweb=new SPSite(SharePointURL).OpenWeb();
myweb.AllowUnsafeUpdates=true;

myweb.Files.Add(SharePointURL+"/"+e.Name,contents,true);
// if (File.Exists(e.FullPath))
// File.Delete(e.FullPath);
if( wic != null ) wic.Undo();
AresLog.recordLog("文件上傳成功","","",e.Name ,e.FullPath);

}
catch(Exception ee)
{
if( wic != null ) wic.Undo();
AresLog.recordLog("上傳文件異常","","",ee.Message,ee.StackTrace);
}
}
以下是我寫的通過ftp的方式,將文件傳輸到本地,然後讀取本地磁碟文件,上傳到sharpoint文檔庫的代碼:(需要注意域名的書寫,此代碼已經過本機測試成功,但具體環境不同,也可能造成一定的差異)
[WebMethod]
public string UpLoadFilesToSPS(string FtpServer,string FtpUser,string FtpPwd,string FtpPath,string FilesName,string FilesInfo,string targetUrl)
{
//ftp settings
FtpClient myFTP=new FtpClient();
myFTP.Server=FtpServer;
myFTP.Username=FtpUser;
myFTP.Password=FtpPwd;
myFTP.RemotePath=FtpPath;
//filePath,info
string[] fName=Microsoft.VisualBasic.Strings.Split(FilesName,";",-1,Microsoft.VisualBasic.CompareMethod.Text);
string[] fInfo=Microsoft.VisualBasic.Strings.Split(FilesInfo,";",-1,Microsoft.VisualBasic.CompareMethod.Text);
int i=0;
//檢查和創建本地環境
if(Directory.Exists("C://AresTemp")==false)
{
Directory.CreateDirectory("C://AresTemp");
}
foreach(string fDirectory in fInfo)
{
if(Directory.Exists("C://AresTemp//"+fDirectory)==false)
{
Directory.CreateDirectory("C://AresTemp//"+fDirectory);
}
}
//文件下載
for(i=0;i<fName.Length;i++)
{
myFTP.DownloadEx(fName[i],"C://AresTemp//"+fInfo[i]+"//"+fName[i],true);
}
myFTP.Close();
WindowsImpersonationContext wic = null;

if( wic != null ) wic.Undo();
//獲取模擬用戶信息
ZSoft.WindowsImpersonation.WIUser myUser=new ZSoft.WindowsImpersonation.WIUser(ServerUser,ServerName,ServerPassword);
myUser.impersonateValidUser();
wic =myUser.wic;
SPWeb myweb=new SPSite(targetUrl).OpenWeb();
myweb.AllowUnsafeUpdates=true;
for(i=0;i<fName.Length;i++)
{
FileStream fStream;
fStream= File.OpenRead("c://AresTemp//"+fInfo[i]+"//"+fName[i]);
byte[] contents = new byte[fStream.Length];
fStream.Read(contents, 0, (int)fStream.Length);
fStream.Close();
myweb.Files.Add(targetUrl+"/"+fInfo[i]+"//"+fName[i],contents,true);
}
myweb.Close();
if( wic != null ) wic.Undo();
return "文件傳輸成功!";
}

熱點內容
備份sql的表 發布:2024-04-24 03:00:10 瀏覽:126
tls加密 發布:2024-04-24 02:59:36 瀏覽:520
篩選法的演算法 發布:2024-04-24 02:54:28 瀏覽:901
武漢大學編譯原理 發布:2024-04-24 02:25:47 瀏覽:298
自己搭建雲手機平台伺服器配置 發布:2024-04-24 02:00:40 瀏覽:164
澤拉斯開腳本 發布:2024-04-24 01:48:22 瀏覽:161
聊城編程培訓機構 發布:2024-04-24 01:45:28 瀏覽:909
iptables允許訪問外網訪問 發布:2024-04-24 01:20:20 瀏覽:882
p在c語言中是什麼意思 發布:2024-04-24 00:53:13 瀏覽:237
空調壓縮電機 發布:2024-04-24 00:48:03 瀏覽:508