Javascript рефреш при ъплоад

trevata

Registered
Имам едно кодче за качване на файлове (в случая снимки) със джаваскрипт. Джаваскрипта не е мой, намерих го из нета ама имам един проблем, искам след като качи снимката да рефрешне страницата.
Код:
 function $m(theVar){
	return document.getElementById(theVar)
}
function remove(theVar){
	var theParent = theVar.parentNode;
	theParent.removeChild(theVar);
}
function addEvent(obj, evType, fn){
	if(obj.addEventListener)
	    obj.addEventListener(evType, fn, true)
	if(obj.attachEvent)
	    obj.attachEvent("on"+evType, fn)
}
function removeEvent(obj, type, fn){
	if(obj.detachEvent){
		obj.detachEvent('on'+type, fn);
	}else{
		obj.removeEventListener(type, fn, false);
	}
}
function isWebKit(){
	return RegExp(" AppleWebKit/").test(navigator.userAgent);
}
function ajaxUpload(form,url_action,id_element,html_show_loading,html_error_http){
	var detectWebKit = isWebKit();
	form = typeof(form)=="string"?$m(form):form;
	var erro="";
	if(form==null || typeof(form)=="undefined"){
		erro += "The form of 1st parameter does not exists.\n";
	}else if(form.nodeName.toLowerCase()!="form"){
		erro += "The form of 1st parameter its not a form.\n";
	}
	if($m(id_element)==null){
		erro += "The element of 3rd parameter does not exists.\n";
	}
	if(erro.length>0){
		alert("Error in call ajaxUpload:\n" + erro);
		return;
	}
	var iframe = document.createElement("iframe");
	iframe.setAttribute("id","ajax-temp");
	iframe.setAttribute("name","ajax-temp");
	iframe.setAttribute("width","0");
	iframe.setAttribute("height","0");
	iframe.setAttribute("border","0");
	iframe.setAttribute("style","width: 0; height: 0; border: none;");
	form.parentNode.appendChild(iframe);
	window.frames['ajax-temp'].name="ajax-temp";
	var doUpload = function(){
		removeEvent($m('ajax-temp'),"load", doUpload);
		var cross = "javascript: ";
		cross += "window.parent.$m('"+id_element+"').innerHTML = document.body.innerHTML; void(0);";
		$m(id_element).innerHTML = html_error_http;
		$m('ajax-temp').src = cross;
		if(detectWebKit){
        	remove($m('ajax-temp'));
        }else{
        	setTimeout(function(){ remove($m('ajax-temp'))}, 250);
        }
    }
	addEvent($m('ajax-temp'),"load", doUpload);
	form.setAttribute("target","ajax-temp");
	form.setAttribute("action",url_action);
	form.setAttribute("method","post");
	form.setAttribute("enctype","multipart/form-data");
	form.setAttribute("encoding","multipart/form-data");
	if(html_show_loading.length > 0){
		$m(id_element).innerHTML = html_show_loading;
	}
	form.submit();
}

upload.php
Код:
<?php
include "config.php";
@header("Content-Type: text/html; charset=windows-1251");
$fileN = $_REQUEST['filen'];
if (isset($fileN)){
    $allowed_ext = "jpg,jpeg,gif,png";
    $filesize = $_FILES['pic']['size'];
    $maxlimit = 9999999999;
    if($filesize > 0){
          $filename = strtolower($_FILES['pic']['name']);
          $filename = preg_replace('/\s/', '_', $filename);
		   	if($filesize < 1){
				$errorList[] = "Празен файл!";
                echo "Празен файл!";
			}
			if($filesize > $maxlimit){
				$errorList[] = "Твърде голям файл!";
                 echo "Твърде голям файл! (1MB макс.)";
			}
              if(count($errorList)<1){
                $file_ext = preg_split("/\./",$filename);
				$allowed_ext = preg_split("/\,/",$allowed_ext);
                $rand = rand(100,999).rand(10,99).rand(100,500);
                $front_name = substr($file_ext[0], 0, 15);
                $newfilename = $front_name."_".$rand.".".end($file_ext);
                foreach($allowed_ext as $ext){
                  if($ext==end($file_ext)){
                  $data = date("d.m.Y");
                  $zapis = mysqlCountR("mmvet_obqvi", "date = '$data' AND userip = '$ip' AND active = 0");
                    if($zapis > 0){
                      $picsB = mysqlGet("mmvet_obqvi", "*", 0, "date = '$data' AND userip = '$ip' AND active = 0");
                      $allpics = $picsB['pics'];
                      $picsEx = explode(",", $allpics);
                        if(sizeof($picsEx) == 5){
                            echo "Не може да качвате повече от 5 снимки!";
                        }else{
                            $plusPic = $allpics.",".$newfilename;
                            mysqlSet("mmvet_obqvi", "pics", "$plusPic", "date = '$data' AND userip = '$ip' AND active = 0", "~ ");
                        }
                    }else{
                        mysqlAdd("mmvet_obqvi", "null,null,null,null,null,null,$data,null,null,null,null,null,null,null,$newfilename,$ip,0");
                    }
                        if(sizeof($picsEx) <= 5 ){
                            copy($_FILES['pic']['tmp_name'], "_data/uploads/".$newfilename);
                            saveThumb("_data/uploads/".$newfilename, 283, 212, "_data/uploads/thumbbig_".$newfilename, end($file_ext));
                            saveThumb("_data/uploads/".$newfilename, 108, 81, "_data/uploads/thumbsmall_".$newfilename, end($file_ext));
                            unlink("_data/uploads/".$newfilename);
                            $imgUploaded = true;
                        }
                  }
                }

              }else{
                $imgUploaded = false;
              }
    }else{
      echo "Не е избран файл!";
      $imgUploaded = false;
    }
}else{
  echo "Няма файл!";
}
?>
 
И така на всеки 5 секунди ще му рефрешва. Иначе сега мисля, почти съм го измислил. :D
EDIT: Защо не стане просто if($upload == TRUE){ кода за след ъплоуд header: ("Location: upload.php");}
Ако не става така дай точно кода, където пише, че е качен успешно...
 
Незнам точно как действа джават, не й разбирам много, много... ето демото http://atwebresults.com/php_ajax_image_upload/
а в пхп кода им има една променлива $imgUploaded може би тя играе неква роля :lol:
 
crazy_pi4 каза:
И така на всеки 5 секунди ще му рефрешва. Иначе сега мисля, почти съм го измислил. :D
EDIT: Защо не стане просто if($upload == TRUE){ кода за след ъплоуд header: ("Location: upload.php");}
Ако не става така дай точно кода, където пише, че е качен успешно...
Кодът не е header:("location:upload.php"); }
1. Трябва да е без две точки пред header и второ за location не съм сигурен но мисля, че е задължителен http://
<?
Header("Location: http://site.com/upload.php");
?>
 
Манете PHP-то, говориме за
Код:
window.location.reload();
ама се чуда къде из джаваскрипта да го ръгна...
 
Утре ще погледна кода и ще ти кажа, щото сега ставам.
@DeathGuard_ за двете точки просто от невнимание съм объркал, а за линка щом е файла на сървъра може и без http.
 
trevata каза:
Манете PHP-то, говориме за
Код:
window.location.reload();
ама се чуда къде из джаваскрипта да го ръгна...

Код:
{
....
   form.submit();
window.location.reload();
}

тука като го ръгнеш не става ли ?
 
bafitu каза:
Код:
{
....
   form.submit();
window.location.reload();
}

тука като го ръгнеш не става ли ?
Първо така пробвах.... Ама така ич и не иска да изпрати формата даже и не рефрешва :!:
 
Код:
setTimeout(function(){ window.location.reload();}, 1000);
на същото място
п.п. може да си поиграеш малко със секундите 1000=1 сек май
 
Съжалявам за PHP-то ето ти работещ javascript Код:
Това между head таговете
<script language="JavaScript">
function reload() {
window.location.reload()
}
</script>

HTML:
<a href="update.php" onClick="setTimeout('reload()',1000)"></a>
Незнам как ти е страницата, кръстих я update.php
 
Извинявам се че пиша чак сега, занимавах се с други работи и чак сега ми при трябва това.... Та замислих нещо, обаче ше ми трябва малко помощ от вас :)

form.setAttribute("target","ajax-temp");
form.setAttribute("action",url_action);
form.setAttribute("method","post");
form.setAttribute("onsubmit","refresh()");
form.setAttribute("enctype","multipart/form-data");
form.setAttribute("encoding","multipart/form-data");
if(html_show_loading.length > 0){
$m(id_element).innerHTML = html_show_loading;
}
form.submit();

Та тука с това onsubmit добре ли е ? И ако може рефреша да стане след 3 секунди...
 

Горе