[PHP] upload, tmp files

Pagina: 1
Acties:
  • 62 views sinds 30-01-2008

  • Tux
  • Registratie: Augustus 2001
  • Laatst online: 21-08 06:33
Ik gebruik een upload scriptje:
http://62.250.9.120/library.php?sid=4917

Dit scriptje werkt zoals het daar staat perfect alleen ik wil het opnemen in een groter formulier. Een formulier dat nieuws toevoegt aan de db en er moet bij elk bericht een pdf of een doc file komen.

Nu heb ik een file-input in het form gehangen en enctype meegegeven met het form. Maar als ik bijv. in dat vakje C:\map\woei.doc zet dan krijgt het script php1D.tmp als bestandsnaam door. Dat is natuurlijk niet de bedoeling :/

Dus hoe kan het dat in het ene form de bestandsnaam wel goed wordt doorgegeven en in de andere een hele andere?

The NS has launched a new space transportation service, using German trains which were upgraded into spaceships.


  • Stalkert
  • Registratie: Januari 2001
  • Laatst online: 07:34
Ik heb het scriptje ook eens getest, maar bij mij werkt het niet. Ik heb precies gedaan wat er staat: een map uploads aangemaakt met chmod 777. Maar hij doet het het niet ..erg vaag

Zelfs als ik de code exact kopieer en in een bestand uploaden.php stop op mijn webserver en ik upload dan bijv een jpg bestand, zie ik niets staan in de map uploads. Je ziet hem heel even iets doen (ik zie een post in de status bar van internet explorer), maar daarna springt hij gewoon weer terug.

Enig idee ? Beetje offtopic dit maar goed ;)

Enig idee wat er mis kan zijn ?

  • Robin
  • Registratie: Juni 2001
  • Niet online
Sjeehees :o. Ik houd het toch liever op een eenvoudig stukje PHP :P.

De dir "files" aanpassen naar de gewenste directory en deze chmodden naar 777. De ge-uploade bestanden komen dan daar terecht. Niet van mij, maar ooit eens een keer ergens vandaan getoverd :o :). Hopelijk helpt dit stukje code julllie een beetje :).

PHP:
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
<?PHP 
if ($submit) 
{ 
 if (is_uploaded_file($bestand)) 
 { 
  { 
  move_uploaded_file($bestand, "./files/$bestand_name"); 
  echo "Bestand '$bestand_name' met de grootte: $bestand_size bytes is succesvol geupload!<br><hr><br>"; 
  } 
 } 
 else 
 { 
  echo "Er is een fout bij het uploaden van bestand: '$bestand'!<br><hr><br>"; 
 } 
} 
else 
{ 
 echo "Selecteer een bestand om te uploaden! LET OP overschrijven gaat zonder waarschuwing!<br><hr><br>"; 
} 
echo "<form method=\"post\" enctype=\"multipart/form-data\"> 
<input type=\"file\" name=\"bestand\"><br> 
<input type=\"submit\" value=\"Uploaden maar!\" name=\"submit\"> 
</form><hr>"; 
$filecounter = "1"; 
$directory = dir("./files"); 
while($entry=$directory->read()) 
{ 
  echo "file $filecounter:";    echo "<a href=\"./files/$entry\" target=\"_blank\">$entry</a><br>";    $filecounter++; 
} 
echo "<p> $filecounter files found"; 
$directory->close(); 
?> 

Verwijderd

Sorry, maar dat script zit naar mening nogal waardeloos in elkaar. Controleer zelf eerst de naam van het bestand, en gebruik die naam alleen als dat is toegestaan! Dus niet renamen of moven naar een directory die via HTTP bereikbaar is vóórdat je weet of dat allemaal wel in orde is.

Het is nogal eenvoudig om zelf HTTP headers te sturen. Vertrouw gewoon helemaal niets dat je van de client krijgt. En daarom krijgt het bestand dus ook oorspronkelijk een andere naam, om jou tegen jezelf te beschermen.

Maar ik zou dat scriptje zeker niet als basis nemen.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Dit topic is gesloten.