Upload script doet het niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nicky van boven

nicky van boven

08/02/2012 23:27:55
Quote Anchor link
Hoi,

Waarom werkt mijn upload script niet, ik zit er al de hele avond mee te stoeien :s

HTML-form:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="upload">
</form>


upload.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$fav
='fav';
    if($_FILES['file'])
    {

        $ext=end(explode('.', $_FILES['file']['tmp_name']));
        if (($_FILES['file']['type'] == 'image/ico') && ($_FILES['file']['size'] < 5000) && ($ext == 'ico'))
        {

            move_uploaded_file($_FILES['file']['tmp_name'],'favicon/'.$fav.'.ico');
        }
    }

?>


bij voorbaat dank
Gewijzigd op 08/02/2012 23:42:34 door Nicky van boven
 
PHP hulp

PHP hulp

17/01/2022 02:37:05
 
Wouter J

Wouter J

08/02/2012 23:32:27
Quote Anchor link
Foutmelding? Wat is 'werkt niet'? Waar denk je dat het probleem is? Wat heb je zoals gedaan tijdens het stoeien? Wat probeer je te bereiken? Wat is het verwachte resultaat en wat is het resultaat dat je krijgt?
 
Nicky van boven

nicky van boven

08/02/2012 23:38:28
Quote Anchor link
Verwachte resultaat:
een favicon uploaden naar de map "favicon" met als naam "fav.ico"
wanneer deze al bestaat, overschrijven.

Het is heel simpel eigenlijk.
Verder heb ik geen foutmeldingen, hij doet het gewoon niet.

Wat ik zoal heb gedaan is een else erin voeren, en proberen foutmeldingen uit te lokken zonder resultaat.

Wat ik wel weet, is dat ik geen $_FILES['file'] kan pakken.
dus de server denkt dat $_FILES['file'] niet bestaat.
 
Joakim Broden

Joakim Broden

08/02/2012 23:45:12
Quote Anchor link
Zet foutmeldingen eens aan?

En wat doet hij niet, misschien kijk je in verkeerde upload map. Wat gebeurt er als je de $_FILES print?

Verander if($_FILES['file']) eens naar if(isset($_FILES['file']))
Gewijzigd op 08/02/2012 23:49:39 door Joakim Broden
 
Nicky van boven

nicky van boven

08/02/2012 23:48:23
Quote Anchor link
njah, niks. Het enige wat ik zie is "mislukt"

ik heb nu het script aangepast:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
<?php
if(move_uploaded_file($_FILES['ufile']['tmp_name'],'favicon/skill.ico')){echo 'gelukt';}else{echo $_FILES['ufile']['tmp_name'].$_FILES['ufile'].'mislukt';}?>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="ufile">
<input type="submit" value="upload">
</form>

Toevoeging op 08/02/2012 23:48:50:

ps: hoe zet je foutmeldingen aan?
 
Joakim Broden

Joakim Broden

08/02/2012 23:51:40
Quote Anchor link
ini_set('display_errors', 1);
error_reporting(E_ALL);

Zelf even zoeken mag ook wel, we zijn hier om te helpen maar dat betekend niet dat je zelf geen inzet hoeft te tonen ;)

Hertog Jan:
Verander if($_FILES['file']) eens naar if(isset($_FILES['file']))
 
- SanThe -

- SanThe -

09/02/2012 00:00:07
Quote Anchor link
Echo die $...[temp_name] eens.
 
Nicky van boven

nicky van boven

09/02/2012 00:02:13
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

$path1="favicons/".$HTTP_POST_FILES['ufile']['name'][0];
copy($HTTP_POST_FILES['ufile']['tmp_name'][0], $path1);
echo $HTTP_POST_FILES['ufile']['name'][0];
?>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="ufile">
<input type="submit" value="upload">
</form>

resultaat:
Warning: copy() [function.copy]: The first argument to copy() function cannot be a directory in /home/todolist/public_html/promopages/upload.php on line 6

resultaat van de echo: f
:s
letterlijk b, terwijl de naam van de favicon favicon.ico is

Toevoeging op 09/02/2012 00:05:03:

Wacht even, deze versie doet het:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

$path1="favicons/".$HTTP_POST_FILES['ufile']['name'];
copy($HTTP_POST_FILES['ufile']['tmp_name'], $path1);
echo $HTTP_POST_FILES['ufile']['name'];
?>

<form action="upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="ufile">
<input type="submit" value="upload">
</form>
Gewijzigd op 09/02/2012 00:03:40 door nicky van boven
 
- SanThe -

- SanThe -

09/02/2012 00:15:18
Quote Anchor link
Waarom ga je opeens over naar de vooroorlogse schrijfwijze $HTTP_POST_FILES in plaats van de hedendaagse $_FILES?
 
Joakim Broden

Joakim Broden

09/02/2012 00:16:22
Quote Anchor link
En nu weer terug naar je begin code, krijg je daar nu foutmeldingen te zien? En verander zowiezo if($_FILES['file']) naar if(isset($_FILES['file']))
 
Nicky van boven

nicky van boven

09/02/2012 00:34:35
Quote Anchor link
Hoi, dank jullie wel
het is eindelijk gelukt.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
    if(isset($_FILES['favicon']))
    {

        $ext=end(explode('.', $_FILES['favicon']['name']));
        if (($_FILES['favicon']['type'] == 'image/x-icon') && ($_FILES['favicon']['size'] < 5000) && ($ext == 'ico'))
        {

            move_uploaded_file($_FILES['favicon']['tmp_name'],'favicons/'.$rij['id'].'.ico');
        }
else{echo '<br>Only .ico files are allowed.';}
    }

?>

Het lag volgens mij ook aan mijn server, die doet gek de laatste tijd.
 
Joakim Broden

Joakim Broden

09/02/2012 00:43:30
Quote Anchor link
Volgens mij lag het daar niet aan.

Je hebt if($_FILES['file']) { veranderd naar if(isset($_FILES['file'])) {

Uitleg:
Met if () { verwacht PHP een boolean, $_FILES['file'] is een array. Oftewel hij voerde het script niet uit omdat if($_FILES['file']) { geen true is.

isset($_FILES['file']) geef een boolean terug, een true of false. Dus als $_FILES['file'] is geset geeft hij true terug en voert dus de code uit.

Kan iemand mij even zeggen of ik het zo goed uitleg?
 
- SanThe -

- SanThe -

09/02/2012 00:46:21
Quote Anchor link
@Hertog Jan: Volgens mij werkte het niet omdat er werd geprobeerd het 'type' uit de temp_name te halen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.