[php] fout bij uploaden

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een form waarop mensen nieuwsberichten kunnen zetten alsmede plaatjes uploaden. Nu had ik het al zo dat pics konden worden meegestuurd, maar nu moest er nog een thumbupload mogelijkheid bijkomen.

De code welke ik gebruikte (en werkte) voor de pics was:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$is_uploaded = is_uploaded_file($_FILES['foto']['tmp_name']); 

 if ($is_uploaded == "1")
{ 
  
  $temp_name = $_FILES['foto']['tmp_name']; 
  $orig_name = $_FILES['foto']['name']; 
  $new_name = "d:/www/xxx.nl/www/test/foto/$orig_name";


 //echo "File uploaded.\n<br>"; 
 //echo "$new_name\n<br>"; 
 
 move_uploaded_file($temp_name,$new_name); 
$linkje = "foto/$orig_name";
}


Nu dacht ik, een kleine aanpassing en hij moet ook werken voor de thumbs:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$is_uploaded2 = is_uploaded_file($_FILES['thumb']['tmp_name']); 

 if ($is_uploaded2 == "1")
{ 
  
  $temp_name2 = $_FILES['thumb']['tmp_name']; 
  $orig_name2 = $_FILES['thumb']['name']; 
  $new_name2 = "d:/www/xxx.nl/www/test/thumb/$orig_name";


 //echo "File uploaded.\n<br>"; 
 //echo "$new_name\n<br>"; 
 
 move_uploaded_file($temp_name2,$new_name2); 
$linkje2 = "thumb/$orig_name2";
}


Echter hier geeft hij de fout:
Warning: move_uploaded_file(d:/www/xxx.nl/www/test/thumb/): failed to open stream: Permission denied in d:\www\xxx.nl\www\test\functies.php on line 497

Warning: move_uploaded_file(): Unable to move 'c:/temp\php29F4.tmp' to 'd:/www/xxx.nl/www/test/thumb/' in d:\www\xxx.nl\www\test\functies.php on line 497

de directory thumb onder /test heb ik wel op 777 staan....

Iemand een idee waar dit aan kan liggen ?!

Acties:
  • 0 Henk 'm!

  • André
  • Registratie: Maart 2002
  • Laatst online: 12-09 14:32

André

Analytics dude

Heeft het script wel rechten genoeg dan?

Acties:
  • 0 Henk 'm!

  • PromWarMachine
  • Registratie: Oktober 2001
  • Laatst online: 19-09 22:28

PromWarMachine

Forsaken Archer

Wat staat er op regel 497?

Bestaat C:\Temp en heb je hier rechten?

"c:/temp\php29F4.tmp" gaat het gebruik van verschillende slashes hier wel goed?

Heb je in www\test ook de goede rechten?
Als je in www\test niet genoeg rechten hebt, dan gaat www\test\foto (je vorige script) wel goed, als je in foto genoeg rechten hebt. Maar www\test\function.php kan dan nog steeds wel fout gaan.

[ Voor 58% gewijzigd door PromWarMachine op 12-05-2004 14:01 ]

Dividend for Starters


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nou dat ene script voor test\foto staat ook in function.php dus daar ligt het denk ik niet aan.
Deze heb ik ook ff op 777 gezet, maar maakt geen verschil..

Zal ff mijn werkwijze uitleggen, mischien dat daar de fout in zit.

ik heb een fom met 2 file velden voor de te uploaden pics.
deze form verstuurt naar verwerk.php?actieadmin=nieuws

die nieuws roept een functie aan
nieuwsupdate($titel,$inleiding,$beschrijving,$naam)

en in deze functie worden de 2 file velden weer gebruikt op de manier zoals in mijn 1e post gezegd. alleen snap ik nu niet waarom het bij de ene wel werkt en bij de ander niet....

edit:

regel 497 is:
move_uploaded_file($temp_name2,$new_name2);

[ Voor 7% gewijzigd door Verwijderd op 12-05-2004 14:08 ]


Acties:
  • 0 Henk 'm!

  • PromWarMachine
  • Registratie: Oktober 2001
  • Laatst online: 19-09 22:28

PromWarMachine

Forsaken Archer

Je kunt proberen om tijdelijk die thumbs in de directory foto op te slaan, waarbij je $new_file2 de toevoeging _thumb in de filename geeft ofzo.
Zo kun je kijken of het daar wel goed gaat. Als dat het geval is, dan weet je dat het sowieso iets met rechten in thumb te maken heeft.


edit:

Dom van me...
Nu zie ik het... je bent in je tweede script bij $orig_name2 de twee vergeten toe te voegen ;)
(Regel 8 hierboven)

[ Voor 27% gewijzigd door PromWarMachine op 12-05-2004 14:59 ]

Dividend for Starters


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 16:28
Verwijderd schreef op 12 mei 2004 @ 13:57:
PHP:
1
2
  $orig_name2 = $_FILES['thumb']['name']; 
  $new_name2 = "d:/www/xxx.nl/www/test/thumb/$orig_name";
Je assignt eerst aan $orig_name2 en vervolgens refereer je aan $orig_name, die dan waarschijnlijk nog leeg is. Vandaar dat je ook de foutmelding krijgt dat het bestand niet naar de directory zelf ("d:/www/xxx.nl/www/test/thumb/") gekopieerd kan worden; je probeert dan immers een bestand over de directory te kopieren en dat kan niet.

Als je de foutmeldingen van PHP had bekeken had je daar ook een nette warning voor gekregen, trouwens. Zet voor de grap eens error_reporting(E_ALL); bovenaan je scripts.

[ Voor 19% gewijzigd door Soultaker op 12-05-2004 14:52 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
yep, dom dom dom......
1000 maal excuses om met zoiets doms vast te lopen.

laatst probleem betreffende een dynamisch form.
Ik heb een tabel met wedstrijden.
Mensen kunnen hierop de toto invullen (zoals ik reeds in een ander topic had genoemd).
Ik haal dus per keer 4 wedstrijden uit de tabel en laat deze zien in een form waarna mensen moeten kijken of deze wedstrijd van hun een 1,2 of 3 krijgt.

als ze dat gedaan hebben wordt het form verstuurd naar een functie update toto()
deze krijgt 3 argumenten mee. Persoonsid, Wedstrijdsid en Gok.
Ik kan nu de form namen niet vast zetten omdat er steeds andere wedstrijden zijn en dus de wedstrijdsis's veranderen. Hoe kan ik nu ervoor zorgen dat de functie wel blijf werken met meerder wedstrijden.

Wat het probleem nu is, is dat ik er niet uit kom hoe ik dat in mijn form moet regelen. Moet ik de radio buttons waarop ze de gok nemen als name wedstrijdid geven en dat deze dan we waarde van de gok gaat houden ?!
Ben even helemaal de kluts hiermee kwijt..

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben even verder gaan zoeken en volgens mij moet ik die form dan in een array zetten en die foreach gaan doorlopen en daarmee dan de functie aanroepen.. (alleen snap ik niet hoe dat werkt..)

is er geen andere betere manier ? heb het hele gedeelte eens op papier gezet en eigenlijk is het heel logisch, maar ik krijg het niet werkend...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
pseudocode

-haal de laatste 4 wedstrijden adh van ORDE BY wid uit de wedstrijden TABEL
-pak de wedstrijden stuk voor stuk uit je database result.
-geef de 1e wedstrijd weer met daarachter 3 radiobuttons
-geef deze radiobuttons de naam wid
-zet een hiddenfield met als naam wedid en geef deze de waarde van wid.
-pak de 2e wedstrijd en doe daar hetzelfde mee.
enz. enz. tot wedstrijd 4.

zet de submitknop

als de form gesubmit wordt:

HIER LOOP IK VAST.

wat ik tot nu toe probeerde was, roep de functie totoinschrijf(wid,pid,gok) aan met als argumenten totoinschrijf($wedid,$pid,$wid)
alleen hoe zorg ik er dan voor dat deze alle 4 de wedstrijden in de db zet ?!?!
4 keer aanroepen heeft geen zin...
Pagina: 1