Toon posts:

Afbeelding browsen en uploaden in 1 klik (deel II).

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb een PHP image-pload-script draaien op mijn website, en die werkt op zich prima.
Nu zou ik alleen graag hebben dat je niet een aparte browse-button en een aparte send button hebt.
Gewoon 1 knop om te browsen en als je klaar bent dan vertuurt'ie die. Dat kan. Dat ben ik wel vaker tegengekomen, maar hier is een voorbeeld: http://www.blogger.com/edit-profile.g#photo.

Ik heb nu dit:
code:
1
2
3
<form name="submitpaul" action="<?php echo $_server['php-self'];  ?>" method="post" enctype="multipart/form-data" id="something" class="uniForm">
        <input name="new_image" id="new_image" size="0" type="file" onchange="javascript:submitpaul.submit()">
</form>


En in PHP:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
        if(isset($_POST['submitpaul'])){
          if (isset ($_FILES['new_image'])){
              $imagename = $_FILES['new_image']['name'];
              $source = $_FILES['new_image']['tmp_name'];
              $target = "imagespaul/".$imagename;
              move_uploaded_file($source, $target);
 
              $imagepath = $imagename;


              $save = "imagespaul/sml_" . $imagepath; //This is the new file you saving
              $file = "imagespaul/" . $imagepath; //This is the original file
 
              list($width, $height) = getimagesize($file) ; 
 
              $modwidth = 404; 
 
              $diff = $width / $modwidth;
 
              $modheight = $height / $diff; 
              $tn = imagecreatetruecolor($modwidth, $modheight) ; 
              $image = imagecreatefromjpeg($file) ; 
              imagecopyresampled($tn, $image, 0, 0, 0, 0, $modwidth, $modheight, $width, $height) ; 
 
              imagejpeg($tn, $save, 100) ; 
              

$data = '*'.$imagepath.'';

$file = "imagespaul_clean.txt"; 

$fh = fopen("imagespaul_clean.txt", "r");
$fcontent = fread($fh, filesize("imagespaul_clean.txt"));

$fh2 = fopen('imagespaul_clean.txt', 'w+');

fwrite($fh2, stripslashes($data));
fwrite($fh2, $fcontent);
fclose($fh);
fclose($fh2);

echo ('<br /><br /><center><img src="autoani.gif"></center>');
echo ('<meta http-equiv="Refresh" content="1;url=imageposter.php" />');
 
          }
        }
?>


Maar als ik nu op browse klik en een bestand selecteer dan lijkt het erop de de pagina gereload wordt, maar de afbeelding wordt niet verzonden (de verstuur-animatie "autoani.gif" wordt ook niet weergegeven).

Ik ben er alweer een paar uurtjes mee bezig geweest. Heeft iemand een tip, link, oplossing?

Alvast bedankt en nog steeds een fijne kerst voor alle tweakers!

Acties:
  • 0 Henk 'm!

  • harrald
  • Registratie: September 2005
  • Laatst online: 16-09 08:44
Al probeer je nu niet alles tegelijk te doen maar gewoon stap voor stap.
Dus, ga eerst eens kijken hoe zo'n upload form in mekaar zit. Op dit moment zit er een hele hoop overbodige troep in wat verraadt dat je gewoon wat gecopy/paste hebt.
En probeer dán eens wat te uploaden.

onchange is al javascript dus "javascript:" kan weg. action"" kan in dit geval leeggelaten worden ivm post naar zelfde script.

Acties:
  • 0 Henk 'm!

  • Copyman
  • Registratie: Januari 2001
  • Laatst online: 24-09 11:52

Copyman

Dode muis

Ik heb even een heel eenvoudige testcase gemaakt waar ik het zonder problemen aan de praat krijg.

HTML:
1
2
3
<form method="post" action="upload.php" enctype="multipart/form-data">
    <input id="autosubmit" type="file" name="fileupload">
</form>

JavaScript:
1
2
3
document.getElementById('autosubmit').onchange = function() {
    this.form.submit();
}

PHP:
1
2
3
4
5
6
    $target = "uploads/" . $_FILES['fileupload']['name'];
    
    if(move_uploaded_file($_FILES['fileupload']['tmp_name'], $target))
        echo "Bestand " . $_FILES['fileupload']['name'] . " verstuurd!";
    else
        echo "Er is iets fout gegaan.";

En zoals harrald zegt, probeer het eens stap voor stap. Strip de code tot het nodige en ga het daarna vanuit een werkende situatie weer opbouwen.

Zeer belangrijke informatie: Inventaris


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
heel goed! jullie hebben gelijk ... soms ben ik een vieze copypaster :) ... ik ga ermee aan de slag en laat nog weten of het gelukt is.

Cheers bro's!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het is aan het lukken...

Op http://www.viernulvier.nl/test.php vind je een werkende versie... echter ik heb ook geprobeerd het toe te passen op een andere pagina en die werkt nog niet...

Eigenlijk snap ik niet wat daar misgaat, want ik doe voor zover ik weet precies hetzelfde ...

Iemand een idee?

Acties:
  • 0 Henk 'm!

  • hellfighter87
  • Registratie: Mei 2008
  • Laatst online: 07:09
Verwijderd schreef op maandag 29 december 2008 @ 13:18:
Het is aan het lukken...

Op http://www.viernulvier.nl/test.php vind je een werkende versie... echter ik heb ook geprobeerd het toe te passen op een andere pagina en die werkt nog niet...

Eigenlijk snap ik niet wat daar misgaat, want ik doe voor zover ik weet precies hetzelfde ...

Iemand een idee?
Een ander systeem?
- Andere php versie ?
- Geen schrijfrechten
- Directory bestaad niet waar hij heen wil schrijven

Verzin iets :P

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
neen ... alles hetzelfde, zelfde map op zelfde server, zelfde upload-map, zelfde rechten ... alleen complexere php ...
Pagina: 1