X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ffreenet%2Ffileinserter.cpp;fp=src%2Ffreenet%2Ffileinserter.cpp;h=4a82bda0e7184c4106acac47407e9d65b3c3bc9e;hb=52581afffd81f5a71c129d87e3ac822d9522f12d;hp=d8d272135269abf24992ff8a271a0a9a00cf787e;hpb=63376b2a82c3f6cdf2df56b1f134bd7df0aaab3a;p=fms.git diff --git a/src/freenet/fileinserter.cpp b/src/freenet/fileinserter.cpp index d8d2721..4a82bda 100644 --- a/src/freenet/fileinserter.cpp +++ b/src/freenet/fileinserter.cpp @@ -55,7 +55,7 @@ const bool FileInserter::HandlePutSuccessful(FCPMessage &message) StringFunctions::Convert(idparts[1],fileinsertid); SQLite3DB::Statement st=m_db->Prepare("UPDATE tblFileInserts SET Key=?, Data=NULL WHERE FileInsertID=?;"); - st.Bind(0,message["URI"]); + st.Bind(0,StringFunctions::UriDecode(message["URI"])); st.Bind(1,fileinsertid); st.Step(); @@ -75,13 +75,14 @@ void FileInserter::StartInsert(const long &fileinsertid) std::string fileinsertidstr=""; std::string sizestr=""; std::string filename=""; + std::string mimetype=""; int datalen=-1; std::vector data; StringFunctions::Convert(fileinsertid,fileinsertidstr); - SQLite3DB::Statement st=m_db->Prepare("SELECT FileName,Size,Data FROM tblFileInserts WHERE FileInsertID=?;"); + SQLite3DB::Statement st=m_db->Prepare("SELECT FileName,Size,Data,MimeType FROM tblFileInserts WHERE FileInsertID=?;"); st.Bind(0,fileinsertid); st.Step(); @@ -90,12 +91,17 @@ void FileInserter::StartInsert(const long &fileinsertid) data.resize(datalen,0); st.ResultBlob(2,&data[0],datalen); data.resize(datalen); + st.ResultText(3,mimetype); StringFunctions::Convert(data.size(),sizestr); message.SetName("ClientPut"); message["URI"]="CHK@"; message["TargetFilename"]=filename; + if(mimetype!="") + { + message["Metadata.ContentType"]=mimetype; + } message["Identifier"]=m_fcpuniquename+"|"+fileinsertidstr; message["UploadFrom"]="direct"; message["DataLength"]=sizestr;