Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XMLHttpRequest + perl 
:(
    Опции темы
Paul56
Дата 14.7.2009, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 19.9.2008
Где: Екатеринбург

Репутация: нет
Всего: нет



Господа помогите пожалуйста разобраться в ошибке.
Смысл нижеприведённого кода загрузка картинки через XMLHttpRequest
file: func.js
Код

function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}


function upload(u, a) {

var xmlhttp = getXmlHttp()
alert ("upload.cgi?file="+u)
  xmlhttp.open("POST", "upload.cgi?file="+u, true);
  xmlhttp.setRequestHeader("Content-Type", "multipart/form-data");
  
xmlhttp.onreadystatechange = function() {
  if (xmlhttp.readyState == 4) {

alert (xmlhttp.responseText);

  }
};
xmlhttp.send(null);
}


file: upload.cgi
Код

#!C:/perl/bin/perl
use strict;
use warnings;

use CGI;
use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);
use Image::Size;
use Image::Magick;
my $image = Image::Magick->new;
print "Content-type: text/html\n\n";
my  $file=1;
    $file = param('picture');
if ($file) {
my $in = $file;
    $in =~ m#([^\\/:]+)$#;
my $width=120;    
open (IMAGE, ">i/$file") or die print $!;
binmode(IMAGE);
while (<$in>) {
print IMAGE $_;
}
close(IMAGE);
$image->Read("i/$file");
my ($w0, $h0) = $image->Get('width', 'height');
$w0 = $w0/120;
$h0 = int($h0/$w0);
$image->Scale(width=>$width, height=>$h0); 
$image->Write("i/$file");

print "<img src=\"i/$file\" width=$width height=$h0 alt=\"\">\n";
}
else {
 print "not good: $file\n";   
}



html 
Код

<html><head><title>file upload</title>
 <script type="text/javascript" src="js/func.js"></script>

</head>  
<body>  
<form method='POST' enctype='multipart/form-data' action="upload.cgi">  
<input type='file' name='picture' onChange='upload(this.form.picture, "topicture")'>

<div id=topicture></div>
</form>  
</body> 

последний через alert выдаёт ошибку

<h1>Software error:</h1>
<pre>Malformed multipart POST: data truncated
</pre>
<p>
....

подскажите где ошибся?


Это сообщение отредактировал(а) Paul56 - 14.7.2009, 16:19
PM ICQ   Вверх
gcc
Дата 14.7.2009, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Агент алкомафии
****


Профиль
Группа: Участник
Сообщений: 2691
Регистрация: 25.4.2008
Где: %&й

Репутация: 1
Всего: 17



проблема в аяксе или в скрипте который записывает?
PM WWW ICQ Skype GTalk Jabber   Вверх
Paul56
Дата 14.7.2009, 21:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 19.9.2008
Где: Екатеринбург

Репутация: нет
Всего: нет



в аяксе, я односзанчно как то не правильно передаю данные без аякса картинки пишутся на диск
PM ICQ   Вверх
KSURi
Дата 14.7.2009, 22:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



Загрузить файл непосредтвенно через ajax нельзя. Для имитации обычно используют или невидимый iframe, или flash.

Это сообщение отредактировал(а) KSURi - 14.7.2009, 22:28


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Paul56
Дата 14.7.2009, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 19.9.2008
Где: Екатеринбург

Репутация: нет
Всего: нет



Могу я у Вас попросить ссылку на пример... ?
PM ICQ   Вверх
thefree
Дата 15.7.2009, 07:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 14.11.2007

Репутация: нет
Всего: нет



http://www.sibsoft.net/xupload.html
http://www.ajaxf1.com/download.html?dl=12
а вот тут, проста идеально то что Вам надо
http://sourceforge.net/projects/perlphpuploader/

Это сообщение отредактировал(а) thefree - 15.7.2009, 08:06
PM   Вверх
KSURi
Дата 15.7.2009, 08:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



thefree, посмотрел вещи, которые вы порекомендовали. Асинхронная загрузка сделана только в одном месте, и то, через открытие нового окна (!). Все остальное - просто прогресс-бары.
Paul56, гуглите "загрузка файлов через ajax", на память я примеров с исходниками не помню. Из рабочих примеров, легко: вконтакте, гугл мейл (у обоих flash).


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
thefree
Дата 15.7.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 14.11.2007

Репутация: нет
Всего: нет



KSURi, ну посмотрите лучше ... http://sourceforge.net/projects/perlphpuploader/, тут же все наглядно показано ...
Все как просили, загружает он картинку ... потом проверяет её статус по ajax, если загрузилась то выводит ей по ajax ...
хочет может json прикрутить ... для красоты.

все одно ему POST необходима передавать в iframe, что бы не осуществлялся переход на другую страницу.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1133 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.