русский
Germany.ruForen → Архив Досок→ Programmierung

скачать неизвестное кол-во файлов в одной форме

257  
tavy гость15.03.07 14:38
tavy
NEW 15.03.07 14:38 
надо, чтобы при нажатии кнопки Скачать название файла+размер отбражался тут же. И рядом появлялась кнопка удалить. Причем заранее кличество скачиваемых файлов неизвестно. Пишу в JSP.
#1 
  scorpi_ скептик15.03.07 15:03
NEW 15.03.07 15:03 
in Antwort tavy 15.03.07 14:38
В ответ на:
при нажатии кнопки Скачать название файла+размер отбражался тут же

Может всё таки до нажатия?
В ответ на:
И рядом появлялась кнопка удалить.

Что удалить? Откуда удалить?
В ответ на:
Причем заранее кличество скачиваемых файлов неизвестно.

Что значит заранее?
#2 
tavy гость15.03.07 15:38
tavy
NEW 15.03.07 15:38 
in Antwort scorpi_ 15.03.07 15:03
после нажатия. Сам файл будет сохраняться только после полного заполнения формуляра и нажатия кнопки Отослать.
пример формы привешен.
заранее неизвестен - значит не знаю, сколько файлов привесит посетитель, 1 или 10.
#3 
tavy гость15.03.07 15:39
tavy
NEW 15.03.07 15:39 
in Antwort tavy 15.03.07 15:38
тут
#4 
tavy гость15.03.07 15:43
tavy
NEW 15.03.07 15:43 
in Antwort tavy 15.03.07 15:38
http://the-stickman.com/web-development/javascript/upload-multiple-files-with-a-single-file-element/
тут програма, но тока javaskript, мне надо jsp
#5 
  scorpi_ скептик15.03.07 18:21
NEW 15.03.07 18:21 
in Antwort tavy 15.03.07 15:43, Zuletzt geändert 16.03.07 00:44 (scorpi_)
Здесь либо Javascript, либо перезагрузка страницы, иначе не сделать. Я б сделал яваскриптом.
#6 
tavy гость15.03.07 18:51
tavy
NEW 15.03.07 18:51 
in Antwort scorpi_ 15.03.07 18:21
дело в том, что я не зннаю javaskript. А пример как мне кажется не закончен. Туда еще чего-нибудь надо дописывать? Я всё на яве пишу и как его впихать в мою программу не знаю
#7 
  scorpi_ скептик16.03.07 00:53
NEW 16.03.07 00:53 
in Antwort tavy 15.03.07 18:51
Во-первых размер файла тебе на клайенте никто прочитать не даст из соображений безопасности.
А остальное несложно. Вот: http://scorpix.strana.germany.ru/mfu/
html-file
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Multiple file upload</title>
<link href='default.css' rel='stylesheet' type='text/css'>
<script type='text/javascript' src='prototype.js'></script>
<script type='text/javascript' src='multiple_file_input.js'></script>
</head>
<body>
<form action='upload.html' method='post' enctype='multipart/form-data'>
<div id='file_cont'><input id='file_0' name='file_0' type='file'></div>
<div id='file_list'>Files to upload:</div>
</form>
</body>
</html>


и javascript-file

function $C( parent_element, new_tag, new_id, new_className )
{
var temp = document.createElement( new_tag );
if ( new_id )
temp.id = new_id;
if ( new_className )
temp.className = new_className;
parent_element.appendChild( temp );
return temp;
}
var MutipleFileInput = {
next_file_number : 1,
add_file : function( event )
{
var e = Event.element( event );
Event.stopObserving( e, 'change', MutipleFileInput.add_file );
e.style.display = 'none';
var d = $C( $('file_list'), 'div', 'file_label_' + e.file_number, 'file_label' );
d.appendChild( document.createTextNode( e.value ) );
var btn = $C( d, 'span', null, 'file_remove_button' );
btn.appendChild( document.createTextNode( 'remove' ) );
Event.observe( btn, 'click', MutipleFileInput.remove_file );
btn.file_number = e.file_number;
var new_file_input = $C( $('file_cont'), 'input', 'file_' + MutipleFileInput.next_file_number, null );
new_file_input.name = new_file_input.id;
new_file_input.type = 'file';
new_file_input.file_number = MutipleFileInput.next_file_number;
Event.observe( new_file_input, 'change', MutipleFileInput.add_file );
MutipleFileInput.next_file_number++;
},
remove_file : function( event )
{
var e = Event.element( event );
Event.stopObserving( e, 'change', MutipleFileInput.add_file );
Element.remove( $( 'file_' + e.file_number ) );
Element.remove( e.parentNode );
}
}
Event.observe( self, 'load', function() {
Event.observe( $('file_0'), 'change', MutipleFileInput.add_file );
$('file_0').file_number = 0;
} );


#8 
tavy гость16.03.07 08:17
tavy
NEW 16.03.07 08:17 
in Antwort scorpi_ 16.03.07 00:53
если у меня всё написано в яве, можно ли туда добвить яваскрипт? я всё пишу в netbeans, там есть формы для создания класов для явы, а вот для яваскрипт я что-то не нахожу.
#9 
tavy гость16.03.07 08:37
tavy
NEW 16.03.07 08:37 
in Antwort tavy 16.03.07 08:17
спасибки большое! мне показали как надо делать! как всегда все очень просто
#10 
  scorpi_ скептик16.03.07 19:37
NEW 16.03.07 19:37 
in Antwort tavy 16.03.07 08:37
Вообще достаточно подцепить оба скрипта, или тебечто-то другое подсказали?
А если не секрет, это работа или учёба?
#11 
tavy гость17.03.07 12:16
tavy
NEW 17.03.07 12:16 
in Antwort scorpi_ 16.03.07 19:37
Точно, именно это
Это практика, хотя и платят за нее. Я вообще-то Техноматематик, а в эту фирму взяли почему-то в IT Abteilung. Я сначала вообще в ужасе была, ничего не знала! А сейчас хоть чуть-чуть...
Еще тогда вопрос. Мне теперь эти файлы надо засунуть в БД. Я попробовала как я до этого делала, а так почему-то не работает. Т.е. если я беру обычный файл, он прекрасно сохраняется, а если с помощью этой программы, то нет.
#12 
  scorpi_ скептик17.03.07 13:13
NEW 17.03.07 13:13 
in Antwort tavy 17.03.07 12:16
В ответ на:
Мне теперь эти файлы надо засунуть в БД. Я попробовала как я до этого делала, а так почему-то не работает. Т.е. если я беру обычный файл, он прекрасно сохраняется, а если с помощью этой программы, то нет.

Что значит эти? Ну и кроме того я не телепат, без кода сложно что-то сказать.
#13 
tavy гость17.03.07 15:48
tavy
NEW 17.03.07 15:48 
in Antwort scorpi_ 17.03.07 13:13
private int addFile(Userdata ud){
........................
File file = new File(ud.getFile);
FileInputStream fis = new FileInputStream(file);
PreparedStatement ps = conn.prepareStatement("INSERT INTO images VALUES (?, ?)");
ps.setString(1, file.getName());
ps.setBinaryStream(2, fis, (int)file.length());
ps.executeUpdate();
ps.close();
fis.close();
..................
Когда я сохраняю картинку в БД, полученную обычным Durchsuchen, она сохраняется.
А когда пытаюсь сохранить картинку, используя ту программу с яваскрипт, то ничего не сохраеяется.
#14 
Murr коренной житель19.03.07 00:09
Murr
NEW 19.03.07 00:09 
in Antwort tavy 17.03.07 15:48
она сохраняется.
то ничего не сохраеяется.
------
Попробуй осознать разницу между клиентом, сервером и тем, где, что и когда выполняется. О-о-очень полезно будет...
#15 
  scorpi_ скептик20.03.07 14:30
20.03.07 14:30 
in Antwort tavy 17.03.07 15:48
В ответ на:
FileInputStream fis = new FileInputStream(file);

Так файл уже сохранён? Где и как? Там наверно и ошибка. Кроме того, что за - ud.getFile ? Их ведь может быть несколько.
В ответ на:
Когда я сохраняю картинку в БД, полученную обычным Durchsuchen, она сохраняется.
А когда пытаюсь сохранить картинку, используя ту программу с яваскрипт, то ничего не сохраеяется.

Да здесь тоже вполне обычные "Durchsuchen", только их несколько file_0, file_1 и т.д.
#16