我是一個web服務器 上工作,我已經創建訪問http://127.0.0.1:8080頁面閱讀二進制文件和打印的內容(Web服務器)
的問題是,當它發送的文件和HTTP頭 功能其不正確copyig文件..其扔在年底一些grabage ..(我試圖傳遞一個二進制文件,這就是爲什麼使用std :: IOS ::二進制IM) example.bin
My Example bin file
:)
下載文件:
My Example bin file
:)ýýýýÝÝÝÝÝÝÝhjß/ÝÝ
我的代碼:
// download file http headers
message_ = "HTTP/1.0 200 OK\r\n"
"Cache-Control: public\r\n"
"Content-Description: File Transfer\r\n"
"Content-Disposition: attachment; filename=example.bin\r\n"
"Content-Type: application/zip\r\n"
"Content-Transfer-Encoding: binary\r\n\r\n";
std::filebuf *pbuf;
std::ifstream sourcestr;
long size;
char * buffer;
sourcestr.open("example.bin",std::ios::in | std::ios::binary);
pbuf=sourcestr.rdbuf();
size=pbuf->pubseekoff (0,std::ios::end,std::ios::in);
pbuf->pubseekpos (0,std::ios::in);
buffer=new char[size];
// get file data
pbuf->sgetn (buffer,size);
message_ += buffer;
如果你在一個帶'sendfile'系統調用的系統上(比如Linux),那麼你可能會用它來發送實際的文件數據? –
我使用Windows不是Linux ..在文件末尾的垃圾使我瘋狂:\ – DanR