crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

Nick5
  опции профиля:
сообщение 22.2.2012, 15:59
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 22.2.2012
Пользователь №: 3233

Спасибо сказали: 0 раз(а)




Репутация:   0  


Друзья,

сразу скажу, что я новичок в программировании, но надо срочно разобраться с одним вопросом. Прошу вашей помощи.

Есть код, который отправляет файл на сервер:

if (attachmentFileName != "")
{
fileInfo.setFile(attachmentFileName);
QString bound="---------------------------123";
QByteArray data(QString("--"+bound+"\r\n").toAscii());
data += "Content-Disposition: form-data; name=\"action\"\r\n\r\n";
data += "\r\n";
data += QString("--" + bound + "\r\n").toAscii();
data += "Content-Disposition: form-data; name=\"file\"; filename=\""+fileInfo.fileName()+"\"\r\n";
data += "Content-Type: image/"+fileInfo.suffix().toLower()+"\r\n\r\n";
QFile file(fileInfo.absoluteFilePath());
file.open(QIODevice::ReadOnly);
data += file.readAll();
data += "\r\n";
data += QString("--" + bound + "\r\n").toAscii();
data += QString("--" + bound + "\r\n").toAscii();
data += "Content-Disposition: form-data; name=\"desc\"\r\n\r\n";
data += "\r\n";

QNetworkRequest r(QUrl("http://ХХХХХХХХХХХХХХХХ.php?"+"p=upload"));


r.setRawHeader(QString("Content-Type").toAscii(),QString("multipart/form-data; boundary=" + bound).toAscii());
r.setRawHeader(QString("Content-Length").toAscii(), QString::number(data.length()).toAscii());
manager->post(r, data);

attachmentFileName.clear();
}


на что сервер дает ответ в XML такой:
.....
здесь происходит обработка имени файла, а именно переименование, и потом перемещение:
.....
move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $fn);
//echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
$messageUploadXml = $messageXml->addChild('upload', "upload/" . $fn);
.....


Так вот в итоге вопрос:
какую мне строчку в Qt написать, чтобы получить новое имя отправленного файла.
Чувствую, что должно быть просто, но не пойму, как...

Очень рассчитываю на вашу помощь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
PAFOS
  опции профиля:
сообщение 7.3.2012, 12:20
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 258
Регистрация: 27.12.2010
Из: Дмитров
Пользователь №: 2309

Спасибо сказали: 29 раз(а)




Репутация:   8  


QFile file(fileInfo.absoluteFilePath());
file.open(QIODevice::ReadOnly);
data += file.readAll();
data += "\r\n";


а как же в BASE 64 ?



а где же обработка больших файлов?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 28.6.2025, 0:47