ugrás a tartalomhoz

kép feltöltése tallózás után, "feltöltés" gomb nélkül

domel · 2015. Feb. 8. (V), 01.51
Üdv!
Összetákoltam egy képfeltöltő oldalt (a kép átméretezés az copy-paste), és azt szeretném megoldani, hogy a "tallózás" gombra kattintva menjen is fel a kép, ne kelljen még külön "feltöltés" gombot nyomni. Kis google keresgélés alapján kijavítottam

<input id="file" type="file" name="file" />
sort

<input id="file" type="file" name="file" onchange="this.form.submit();" />
sorra, de nem működik. Látom hogy feltöltődik a kép, mert van egy kis internet-forgalom grafikon a képernyő sarkában, de meg már nem érkezik. Mindez úgy, hogy az onchange-t kihagyom és a küldés gombra kattintok, akkor működik. Valaki rá tudna nézni, hogy mit cseszek el?

<?php

ob_start();

?>
<?php

////////////////////////////////////counter +1
$filename = 'counter.txt';
if(!$fileopened = @fopen($filename, 'r')) {
   exit();
}
$counter = @fgets($fileopened,1024);
$counter++;
if(!$fileopened = @fopen($filename, 'w')) {
    exit();
}
@fwrite($fileopened, $counter);
@fclose($fileopened);
$counter="kep".$counter.".jpg";


if(isset($_POST['submita'])) {
 
$target= "images/"; //célmappa
$file_name=$_FILES['file']['name']; 

$tmp_dir = $_FILES['file']['tmp_name']; //tmp/phpaRrV0i 

if(!preg_match('/(gif|jpe?g|png)$/i', $file_name)) 
{
echo "Rossz fajltipus!"; 
}
else
{
$file_name=$counter;
move_uploaded_file($tmp_dir, $target . $file_name); 
$feltoltve = true; 
//-----------átméretezés
$imgdir=$target; 
$img=$file_name; 
$tndir=$target; 
$img_uj=$file_name; 
$tn_w="500"; //uj szelesseg 

#-+ Beolvassa az átméretezendő file-t 
$src_img_src=$imgdir.$img; 
$src_img = ImageCreateFromJPEG($src_img_src); 

#-+ Beolvassa az eredeti magasságot, szélességet 
$org_h = imagesy($src_img); 
$org_w = imagesx($src_img); 

#-+ Kiszámolja az uj kép magasságát 
$tn_h = floor($tn_w * $org_h / $org_w); 

#-+ Elkésziti az uj képet 
$dst_img = ImageCreateTrueColor($tn_w,$tn_h); 

#-+ Átméretezi 
ImageCopyResampled($dst_img, $src_img, 0, 0, 0, 0, $tn_w, $tn_h, $org_w, $org_h); 

#-+ Elmenti... 
$imgjpg_dst=$tndir.$img_uj; 
ImageJPEG($dst_img, $imgjpg_dst, 100);
}
}

?>
<html>
  <head>
<meta http-equiv="Content-Language" content="hu">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
    <title>kép feltöltés</title>
    <link href="vk_style.css" type="text/css" rel="stylesheet">
    
</head>
<body  bgcolor="#912506">
<form enctype="multipart/form-data" action="" method="post" />
<input type="hidden" name="MAX_FILE_SIZE" value="3000000" /> <!--a feltöltött file maximális mérete 3mb-->
<label for="file"> Válassz egy fájlt!</label>
<input id="file" type="file" name="file" onchange="this.form.submit();" />
<input type="submit" name="submita" value="Feltöltés!" />
<?php

print "Az oldalt eddig".$counter."felhasználó olvasta";
?>

<table border="0" width="65%" cellspacing="20" cellpadding="0" bgcolor="#CC5512">
<tr>
<td>
<b>
<?php
$dirFiles = array();
// opens images folder
if ($handle = opendir('images')) {
    while (false !== ($file = readdir($handle))) {

    	// strips files extensions      
    	//$crap   = array(".jpg", ".jpeg", ".JPG", ".JPEG", ".png", ".PNG", ".gif", ".GIF", ".bmp", ".BMP", "_", "-");    

        if ($file != "." && $file != ".." && $file != "index.php" && $file != "Thumbnails" && $file != "counter.txt") {
        	$dirFiles[] = $file;
        }
    }
    closedir($handle);
}

rsort($dirFiles);
foreach($dirFiles as $file)
{
    echo "<li><img src=\"images/$file\"></li>\n";
}

?>

</b>		
		
		
</td>
</tr>
</table>

</body>
</html>

<?php
ob_end_flush();
?>
Előre is köszönöm a segítséget!
 
1

Forgalom

Poetro · 2015. Feb. 8. (V), 15.50
Látom hogy feltöltődik a kép, mert van egy kis internet-forgalom grafikon a képernyő sarkában, de meg már nem érkezik.

Akkor meg kellene nézni, hogy mi az amit elküld az űrlap, és hova küldi. Erre minden korszerű böngészőben van beépített eszköz.
2

kevertem a szezont a fazonnal

domel · 2015. Feb. 8. (V), 18.08
Ez a sor nem engedte be a feltöltött képet akkor, ha this.form.submit( esemény volt a küldő
if(isset($_POST['submita'])) {  
igazából nem is értettem meg, hogy mi lehet a posttal a probléma, de lecseréltem
if ($_FILES['file'][size]<>0){
sorra a fájl érkezésének a vizsgálatát, és működik