File indexing completed on 2024-05-05 13:16:58
0001 /* AUDEX CDDA EXTRACTOR 0002 * SPDX-FileCopyrightText: Copyright (C) 2007 Marco Nelles 0003 * <https://userbase.kde.org/Audex> 0004 * 0005 * SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 #include "upload.h" 0009 0010 #include <QDebug> 0011 #include <QUrl> 0012 0013 Upload::Upload(const QUrl &url, QObject *parent) 0014 : QObject(parent) 0015 { 0016 Q_UNUSED(parent); 0017 0018 base_url = url; 0019 } 0020 0021 Upload::~Upload() 0022 { 0023 } 0024 0025 void Upload::upload(const QString &targetpath, const QStringList &filelist) 0026 { 0027 // first create the targetpath on the ftp server 0028 QString dir, olddir; 0029 int i = 0; 0030 Q_FOREVER { 0031 olddir = dir; 0032 dir = targetpath.section('/', 0, i, QString::SectionSkipEmpty); 0033 if (olddir == dir) 0034 break; 0035 ++i; 0036 QUrl url = base_url; 0037 url.setPath(base_url.path() + '/' + dir); 0038 // qDebug() << url; 0039 KIO::Job *job = KIO::mkdir(url); 0040 if (!job->exec()) { 0041 // if it already exists jump over 0042 if (job->error() != 113) { 0043 Q_EMIT error(job->errorText(), ""); 0044 qDebug() << job->errorText(); 0045 return; 0046 } 0047 } 0048 } 0049 0050 for (int i = 0; i < filelist.count(); ++i) { 0051 QUrl url = base_url; 0052 QFileInfo fi(filelist.at(i)); 0053 url.setPath(base_url.path() + '/' + targetpath + '/' + fi.fileName()); 0054 Q_EMIT info(i18n("Uploading file %1 to server. Please wait...", fi.fileName())); 0055 KIO::Job *job = KIO::copy(QUrl(filelist.at(i)), url); 0056 if (!job->exec()) { 0057 Q_EMIT error(job->errorText(), ""); 0058 qDebug() << job->errorText(); 0059 return; 0060 } 0061 Q_EMIT info(i18n("Finished uploading file %1 to server.", fi.fileName())); 0062 } 0063 }