version 0.2.12
[fms.git] / src / freenet / fileinserter.cpp
index d8d2721..4a82bda 100644 (file)
@@ -55,7 +55,7 @@ const bool FileInserter::HandlePutSuccessful(FCPMessage &message)
        StringFunctions::Convert(idparts[1],fileinsertid);\r
 \r
        SQLite3DB::Statement st=m_db->Prepare("UPDATE tblFileInserts SET Key=?, Data=NULL WHERE FileInsertID=?;");\r
-       st.Bind(0,message["URI"]);\r
+       st.Bind(0,StringFunctions::UriDecode(message["URI"]));\r
        st.Bind(1,fileinsertid);\r
        st.Step();\r
 \r
@@ -75,13 +75,14 @@ void FileInserter::StartInsert(const long &fileinsertid)
        std::string fileinsertidstr="";\r
        std::string sizestr="";\r
        std::string filename="";\r
+       std::string mimetype="";\r
        int datalen=-1;\r
        std::vector<char> data;\r
 \r
        StringFunctions::Convert(fileinsertid,fileinsertidstr);\r
 \r
 \r
-       SQLite3DB::Statement st=m_db->Prepare("SELECT FileName,Size,Data FROM tblFileInserts WHERE FileInsertID=?;");\r
+       SQLite3DB::Statement st=m_db->Prepare("SELECT FileName,Size,Data,MimeType FROM tblFileInserts WHERE FileInsertID=?;");\r
        st.Bind(0,fileinsertid);\r
        st.Step();\r
 \r
@@ -90,12 +91,17 @@ void FileInserter::StartInsert(const long &fileinsertid)
        data.resize(datalen,0);\r
        st.ResultBlob(2,&data[0],datalen);\r
        data.resize(datalen);\r
+       st.ResultText(3,mimetype);\r
 \r
        StringFunctions::Convert(data.size(),sizestr);\r
 \r
        message.SetName("ClientPut");\r
        message["URI"]="CHK@";\r
        message["TargetFilename"]=filename;\r
+       if(mimetype!="")\r
+       {\r
+               message["Metadata.ContentType"]=mimetype;\r
+       }\r
        message["Identifier"]=m_fcpuniquename+"|"+fileinsertidstr;\r
        message["UploadFrom"]="direct";\r
        message["DataLength"]=sizestr;\r