Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.07.2013, 12:28
Аспирант
Отправить личное сообщение для vladimircape Посмотреть профиль Найти все сообщения от vladimircape
 
Регистрация: 25.01.2012
Сообщений: 95

Загрузка файла и его просмотр
Вот сама форма
<img id='img'/>	
		<form name="uploadImage" id="uploadImage" enctype="multipart/form-data" action="index2.php?progress=<?php echo($uiq)?>" method="post" class="well">
			<label>Upload File</label>
			<input type="file" name="userImage" id="userImage" />
			<span class="badge badge-info" style="display:none;">0%</span>
			<input type="submit" class="btn btn-success" name="upload_image" id="upload_image" value="UPLOAD FILE" />
			<div class="progress" style="display:none;"><div class="bar" style="width:0%;"></div></div>
			<input type="text" name="text-field"/>
		</form>

Суть в том что при форма работает если действовать по следующим шагам, выбрать файл и нажать загрузить картинку , и картинка появляется на экране ,без перезагрузки, а я сейчас хочу сделать чтобы картинка сразу появлялась как только выбрана, т.е. убрать шаг в котором ты нажимаешь клавишу Загрузить выбранное фото.
Вот код PHP
if(isset($_GET['progress_key']) and !empty($_GET['progress_key'])){
$status = apc_fetch('upload_'.$_GET['progress_key']);
    echo $status['current']/$status['total']*100;	
exit;

а вот сам JS
$(document).ready(function(){
var randIDS = '<?php echo $uiq?>';
var loader;
// Add Hidden Field
var hidden = $("<input>");
hidden.attr({
name:"APC_UPLOAD_PROGRESS",
id:"progress_key",
type:"hidden",
value:randIDS
});

  /*$("form").submit(function(event){      
   });*/



$("#uploadImage").prepend(hidden);
$("#userImage").change(function(){
//$("#uploadImage").submit(function(){

var p = $("#uploadImage");
p.attr('target','tmpForm');

// creating iframe
if($("#tmpForm").length == 0){
var frame = $("<iframe>");
frame.attr({
name:'tmpForm',
id:'tmpForm',
action:'about:blank',
border:0
}).css('display','none');
p.after(frame);
}
// Start file upload
$.get("get_progress.php", {progress_key:randIDS, rand:Math.random()},
	function(data){
		var uploaded = parseInt(data);
		if(uploaded == 100){
			$(".progress, .badge").hide();			
			var filename=$('input[type=file]').val();			
			$('#img').attr('src','uploads/'+filename);
			clearInterval(loadLoader);			
		}
		else if(uploaded < 100)
		{				
		}
		if(uploaded < 100)
			loader = setInterval(loadLoader,100);
	});

var loadLoader = function(){
$.get("get_progress.php", {progress_key:randIDS, rand:Math.random()}, function(data)
{
var uploaded = parseInt(data);
if(uploaded == 100){	
			var filename=$('input[type=file]').val();			
			$('#img').attr('src','uploads/'+filename);
			clearInterval(loader);
}
else if(uploaded < 100)
{
$(".progress, .badge").show();
$(".badge").text(uploaded+"%");
var cWidth = $(".bar").css('width', uploaded+"%");
}
});
}
});});

У меня когда просто последовательные шаги, выбрать а потом загрузить всё работает, когда я попылся убрать шаг загрузить и грузить сразу после выбора, сервер почему-то не находит этот файл загруженный постоянно возвращает 0 байт.
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2013, 12:56
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

не особо вникал в ваш код и его проблемы, но проблема предпросмотра изображений перед загрузкой давно решена с помощью FileReader api (работает не во всех браузерах)
developer.mozilla.org/en-US/docs/Web/API/FileReader -- здесь есть пример

и возможно с помощью flash (но во flash я не разбираюсь, ничего посоветовать не могу)
Ответить с цитированием
  #3 (permalink)  
Старый 23.07.2013, 10:40
Аспирант
Отправить личное сообщение для vladimircape Посмотреть профиль Найти все сообщения от vladimircape
 
Регистрация: 25.01.2012
Сообщений: 95

Готовых решений не надо предлагать, я и сам их знаю, надо сделать всё самому.
Ответить с цитированием
  #4 (permalink)  
Старый 23.07.2013, 10:54
Профессор
Отправить личное сообщение для mta88 Посмотреть профиль Найти все сообщения от mta88
 
Регистрация: 16.05.2013
Сообщений: 229

Сообщение от vladimircape Посмотреть сообщение
Готовых решений не надо предлагать
чем отличается готовое решение от сырого?

Цитата:
я и сам их знаю
а зачем спрашиваете?

Цитата:
надо сделать всё самому
что это значит?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопка, загрузка файла maximus Events/DOM/Window 2 10.01.2013 11:16
Загрузка файла на другой сервер средствами iframe lamer Элементы интерфейса 4 10.05.2012 20:42
Загрузка файла AJAX'ом - почему-то переводит на страницу загрузки файла .andreev AJAX и COMET 13 21.10.2009 22:25
Загрузка файла средставми js twolf Общие вопросы Javascript 8 21.10.2008 18:34
оприделить имя файла www Общие вопросы Javascript 2 10.08.2008 14:34