Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.10.2013, 14:35
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

Загрузка файлов с превью
Этот код производит множественную загрузку, как его переделать чтобы загружался только один файл
<div class="wrapper">
<form id="upload" action="upload.php" method="POST" enctype="multipart/form-data">
<fieldset>
<legend>HTML Загрузка Файлов</legend>
<input type="hidden" id="MAX_FILE_SIZE" name="MAX_FILE_SIZE" value="300000" />
<div>
<label for="fileselect">Выберите файлы для загрузки:</label>
<input type="file" id="fileselect" name="fileselect[]" multiple="multiple" />
<div id="filedrag" >Или перетащите их сюда</div>
</div>
<div id="submitbutton">
<button type="submit">Загрузить файлы</button>
</div>
</fieldset>
</form>
<div id="messages"></div>
</div>

(function() {

	// getElementById
	function $id(id) {
		return document.getElementById(id);
	}

	// output information
	function Output(msg) {
		var m       = $id("messages");
		m.innerHTML = msg + m.innerHTML;
	}

	// file drag hover
	function FileDragHover(e) {
		e.stopPropagation();
		e.preventDefault();
		e.target.className = (e.type == "dragover" ? "hover" : "");
	}

	// file selection
	function FileSelectHandler(e) {

		// cancel event and hover styling
		FileDragHover(e);

		// fetch FileList object
		var files = e.target.files || e.dataTransfer.files;

		// process all File objects
		for (var i = 0, f; f = files[i]; i++) {
			ParseFile(f);
		}

	}

	// output file information
	function ParseFile(file) {

		Output(
			"<p>Информация о файле: <strong>" + file.name +
			"</strong> тип: <strong>" + file.type +
			"</strong> размер: <strong>" + file.size +
			"</strong> байт</p>"
		);

		// display text
		if(file.type.indexOf("text") == 0) {
			var reader = new FileReader();
			reader.onload = function(e) {
				Output(
					"<p><strong>" + file.name + ":</strong></p><pre>" +
					e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;") +
					"</pre>"
				);
			}
			reader.readAsText(file);
		}
		
		// display an image
		if (file.type.indexOf("image") == 0) {
			var reader = new FileReader();
			reader.onload = function(e) {
				Output(
					"<p><strong>" + file.name + ":</strong><br />" +
					'<img src="' + e.target.result + '" /></p>'
				);
			}
			reader.readAsDataURL(file);
		}


	}


	// initialize
	function Init() {

		var fileselect   = $id("fileselect"),
			filedrag     = $id("filedrag"),
			submitbutton = $id("submitbutton");

		// file select
		fileselect.addEventListener("change", FileSelectHandler, false);

		// is XHR2 available?
		var xhr = new XMLHttpRequest();
		if (xhr.upload) {

			// file drop
			filedrag.addEventListener("dragover", FileDragHover, false);
			filedrag.addEventListener("dragleave", FileDragHover, false);
			filedrag.addEventListener("drop", FileSelectHandler, false);
			filedrag.style.display = "block";

			// remove submit button
			submitbutton.style.display = "none";
		}

	}

	// call initialization file
	if (window.File && window.FileList && window.FileReader) {
		Init();
	}


})();
Ответить с цитированием
  #2 (permalink)  
Старый 01.10.2013, 14:39
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Сообщение от imediasun1
как его переделать чтобы загружался только один файл
убрать multiple="multiple" из <input type="file">
Ответить с цитированием
  #3 (permalink)  
Старый 01.10.2013, 14:41
Профессор
Посмотреть профиль Найти все сообщения от imediasun1
 
Регистрация: 23.12.2012
Сообщений: 437

пробовал, но при попытке загрузить второй файл все равно отображается превью второго файла, надо где то в js изменения делать, подскажите пожалуйста
Ответить с цитированием
  #4 (permalink)  
Старый 01.10.2013, 14:48
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

В самое начало function FileSelectHandler(e) добавь $id("messages").innerHTML = "";
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка БОЛЬШИХ файлов посредством ajax barcelona jQuery 7 12.10.2012 03:37
Загрузка файлов (ajax jquery) q13m jQuery 3 08.03.2012 19:18
Form Plugin, загрузка файлов iNfantry jQuery 1 15.02.2012 22:09
Загрузка файлов с % Nightmare jQuery 0 19.09.2011 18:53
Загрузка файлов на чужой сервер LA_ AJAX и COMET 1 15.10.2010 20:15