c文件上傳類
FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為「文傳協議」。
1.C語言可以使用CStdioFile函數打開本地文件。使用類CInternetSession 創建並初始化一個Internet打開FTP伺服器文件。
CStdioFile繼承自CFile,一個CStdioFile 對象代表一個用運行時函數fopen 打開的C 運行時流式文件。
流式文件是被緩沖的,而且可以以文本方式(預設)或二進制方式打開。文本方式提供對硬回車—換行符對的特殊處理。當你將一個換行符(0x0A)寫入一個文本方式的CStdioFile 對象時,位元組對(0x0D,0x0A)被發送給該文件。當你讀一個文件時,位元組對(0x0D,0x0A)被翻譯為一個位元組(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 這幾個CFile 函數。如果在CStdioFile 中調用了這幾個函數,將會出現CNoSupported 異常。
使用類CInternetSession 創建並初始化一個或多個同時的Internet 會話。如果需要,還可描述與代理伺服器的連接。
如果Internet連接必須在應用過程中保持著,可創建一個類CWinApp的CInternetSession成員。一旦已建立起Internet 會話,就可調用OpenURL。CInternetSession會通過調用全局函數AfxParseURL來為分析映射URL。無論協議類型如何,CInternetSession 解釋URL並管理它。它可處理由URL資源「file://」標志的本地文件的請求。如果傳給它的名字是本地文件,OpenURL 將返回一個指向CStdioFile對象的指針。
如果使用OpenURL在Internet伺服器上打開一個URL,你可從此處讀取信息。如果要執行定位在伺服器上的指定的服務(例如,HTTP,FTP或Gopher)行為,必須與此伺服器建立適當的連接。
❷ c#C/S實現文件的上傳下載
用Socket, 服務端創建一個SocketServer,監聽指定的埠,客戶端連接到SocketServer,讀取文件,進行數據通訊。
❸ 在C#中,C\S模式,如何上傳一個文件
如要本地上傳的話,使用File文件流就可以實現了,如果要網路使用,那就用net命名空間了,使用上傳控制項也就實現的。
路過~
❹ c 實現文件上傳,獲取客戶端瀏覽器信息
uc瀏覽器就不錯,它的安裝包很小,不佔內存,不影響運行,瀏覽網頁速度很快。感覺不到有延遲響應。它的安全體系很高,無痕瀏覽,可以保護你的上網隱私。它的架構新,穩定性能極強,速度很快,可以瞬間載入經常內容。謝謝望採納。
❺ 怎麼用C實現Http POST功能向Http伺服器上傳文件
文件可以使用sendfile直接過去
比如剛開始是報文頭部結束\r\n\r\n直接write就可以
然後文件數據可以直接sendfile處理,
也可以
#define BUFSIZE 8196
while(read(fd,buf,BUFSIZE)>0){
write(...);
}
CONTENT-LENGTH是報文頭結束\r\n\r\n之後的位元組總數
❻ 如何用c語言實現上傳文件
FTP 是File Transfer Protocol(文件傳輸協議)的英文簡稱,而中文簡稱為「文傳協議」。
1.C語言可以使用CStdioFile函數打開本地文件。使用類CInternetSession 創建並初始化一個Internet打開FTP伺服器文件。
CStdioFile繼承自CFile,一個CStdioFile 對象代表一個用運行時函數fopen 打開的C 運行時流式文件。
流式文件是被緩沖的,而且可以以文本方式(預設)或二進制方式打開。文本方式提供對硬回車—換行符對的特殊處理。當你將一個換行符(0x0A)寫入一個文本方式的CStdioFile 對象時,位元組對(0x0D,0x0A)被發送給該文件。當你讀一個文件時,位元組對(0x0D,0x0A)被翻譯為一個位元組(0x0A)。
CStdioFile 不支持Duplicate,LockRange,和UnlockRange 這幾個CFile 函數。如果在CStdioFile 中調用了這幾個函數,將會出現CNoSupported 異常。
使用類CInternetSession 創建並初始化一個或多個同時的Internet 會話。如果需要,還可描述與代理伺服器的連接。
如果Internet連接必須在應用過程中保持著,可創建一個類CWinApp的CInternetSession成員。一旦已建立起Internet 會話,就可調用OpenURL。CInternetSession會通過調用全局函數AfxParseURL來為分析映射URL。無論協議類型如何,CInternetSession 解釋URL並管理它。它可處理由URL資源「file://」標志的本地文件的請求。如果傳給它的名字是本地文件,OpenURL 將返回一個指向CStdioFile對象的指針。
如果使用OpenURL在Internet伺服器上打開一個URL,你可從此處讀取信息。如果要執行定位在伺服器上的指定的服務(例如,HTTP,FTP或Gopher)行為,必須與此伺服器建立適當的連接。
❼ c語言實現文件上傳
用c語言調用java程序
java沒有程序這一說,只有java解釋器。
要讓c調用java的東西
看看這篇文章;
http://developer.ccidnet.com/art/818/20030217/38068_1.html
太長了,我就不帖了
❽ 怎麼用cftpconnection類編寫向ftp server上傳文件
為了與FTP Internet伺服器通訊,必須先創建一個CInternetSession實例,然後創建CFtpConnection對象。創建CFtpConnection對象不採用直接方式,而是調用CInternetSession::GetFtpConnertion來創建並返回一個指向它的指針。
CFtpConnection類的成員
構造函數 CFtpConnection 構造一個CFtpConnection對象
操作 SetCurrentDirectory 設置當前FTP目錄
GetCurrentDirectory 獲取此次連接的當前目錄
GetCurrentDirectoryAsURL 獲取作為URL的此次連接的當前目錄
RemoveDirectory 從伺服器移去指定目錄
CreateDirectory 在伺服器上構造一個目錄
Rename 將伺服器上的文件改名
Remove 從伺服器上移去一個文件
PutFile 將一個文件放到伺服器上
GetFile 從連接的伺服器上獲取一個文件
OpenFile 在連接的伺服器上打開一個文件
Close 關閉與伺服器的連接
實例一:上傳文件
CString strAppName = AfxGetAppName();
CInternetSession* pSession = new CInternetSession(strAppName);
CFtpConnection* pConn = pSession->GetFtpConnection("
10.46.1.232","Anonymous","",21);
pConn->SetCurrentDirectory("test");
CString strLocfile,strRemotefile;
strLocfile="C:\\cmd.txt";
strRemotefile="cmd.txt";
pConn->PutFile(strLocfile,strRemotefile,FTP_TRANSFER_TYPE_ASCII);
pConn->Close();
return 0;
實例二:Ftp的打開文件操作函數:OpenFile
❾ 在c#中(c/s)如何實現將上傳的文件保存到指定的文件夾
參考一下我寫的上傳的事件,我把保存的路徑配置在web.cofig裡面了,(需要注意的是超過一定的大小4M的話就會發生前台的異常,而且這個異常後台沒辦法捕獲,網上有個傢伙寫的捕獲的異常的方法我試了,根本沒有用):
protected void btnSave_Click(object sender, System.EventArgs e)
{
HttpPostedFile postedFile = fileUploadInput.PostedFile;
String userType = this.ddlUserType.SelectedValue;
if (postedFile!=null)
{
//判斷文件是否小於10Mb
if (postedFile.ContentLength < 10485760)
{
try
{
//上傳文件並指定上傳目錄的路徑
String serverPath = System.Configuration.ConfigurationSettings.AppSettings["ReportPath"];
if(serverPath!=null)
{
String fileFullName = fileUploadInput.PostedFile.FileName;
String fileName = Path.GetFileName(fileFullName);
if(getUserManager().isFileNameExist(fileName))
{
lblMsg.Text = "Upload Failed:File with same name already exists!";
}
else
{
if (!Directory.Exists(serverPath))
{
Directory.CreateDirectory(serverPath);
}
postedFile.SaveAs(serverPath+fileName);
getUserManager().saveFileToDataBase(fileName,userType);
lblMsg.Text = "Upload Successfully!";
}
}
else
{
lblMsg.Text = "Upload Failed: Path not found!";
}
/*
* FileUpLoad1.PostedFile.SaveAs(Server.MapPath("~/Files/")+ FileUpLoad1.FileName);
* 注意->這里為什麼不是:FileUpLoad1.PostedFile.FileName
* 而是:FileUpLoad1.FileName?
* 前者是獲得客戶端完整限定(客戶端完整路徑)名稱
* 後者FileUpLoad1.FileName只獲得文件名.
*/
//當然上傳語句也可以這樣寫(貌似廢話):
//FileUpLoad1.SaveAs(@"D:\"+FileUpLoad1.FileName);
}
catch (Exception ex)
{
lblMsg.Text = "Upload Failed,Exception Occurs:" + ex.Message;
}
}
else
{
lblMsg.Text = "Upload Failed:The size of the file can not exceeded 10MB!";
}
}
else
{
lblMsg.Text = "File not seleced!";
}
}
❿ 能詳細說一下c/s模式下用c#客戶端實現文件上傳嗎
把文件序列化到流中,使用socket發送過去,在那邊在接收反序列化,轉換成文件