X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ffreenet%2Ffileinserter.cpp;h=42d277779d2baf15fc392acf15eb42630cb9257f;hb=9a14c0d9f7f7c319e539583b93664953764e83b7;hp=d8d272135269abf24992ff8a271a0a9a00cf787e;hpb=63376b2a82c3f6cdf2df56b1f134bd7df0aaab3a;p=fms.git diff --git a/src/freenet/fileinserter.cpp b/src/freenet/fileinserter.cpp index d8d2721..42d2777 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(); @@ -69,19 +69,20 @@ void FileInserter::Initialize() m_fcpuniquename="FileInserter"; } -void FileInserter::StartInsert(const long &fileinsertid) +const bool FileInserter::StartInsert(const long &fileinsertid) { FCPMessage message; 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; @@ -103,4 +109,6 @@ void FileInserter::StartInsert(const long &fileinsertid) m_fcp->SendRaw(&data[0],data.size()); m_inserting.push_back(fileinsertid); + + return true; }