Browse Source

Check MIME type

Kandrashin Denis 13 years ago
parent
commit
8ac6d47b48
2 changed files with 8 additions and 4 deletions
  1. 7 3
      source/fb2save.cpp
  2. 1 1
      source/fb2save.hpp

+ 7 - 3
source/fb2save.cpp

@@ -18,6 +18,7 @@
 #include <QTextCodec>
 #include <QWebFrame>
 #include <QWebPage>
+#include <QtDebug>
 
 //---------------------------------------------------------------------------
 //  Fb2SaveDialog
@@ -221,7 +222,7 @@ void Fb2SaveWriter::writeFiles()
         writeAttribute("id", name);
         QByteArray array = file->data();
         QString data = array.toBase64();
-        writeContentType(array);
+        writeContentType(name, array);
         writeLineEnd();
         int pos = 0;
         while (true) {
@@ -236,12 +237,15 @@ void Fb2SaveWriter::writeFiles()
     }
 }
 
-void Fb2SaveWriter::writeContentType(QByteArray &data)
+void Fb2SaveWriter::writeContentType(const QString &name, QByteArray &data)
 {
     QBuffer buffer(&data);
     buffer.open(QIODevice::ReadOnly);
     QString type = QImageReader::imageFormat(&buffer);
-    if (type.isEmpty()) return;
+    if (type.isEmpty()) {
+        qCritical() << QObject::tr("Unknown image format: %1").arg(name);
+        return;
+    }
     type.prepend("image/");
     writeAttribute("content-type", type);
 }

+ 1 - 1
source/fb2save.hpp

@@ -78,7 +78,7 @@ public:
     void writeFiles();
 private:
     QByteArray downloadFile(const QUrl &url);
-    void writeContentType(QByteArray &data);
+    void writeContentType(const QString &name, QByteArray &data);
 private:
     Fb2WebView &m_view;
     QStringList m_names;