[PHP] upload probleem

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
Hoi allemaal,

Ik zit al de halve avond aan het volgende probleem te prutsen. Heb al allerlei topics hier doorgelezen maar geen enkele oplossing daarvan lijkt hier te werken.

Het gaat om een simpel upload script waarmee een klein plaatje op de server opgeslagen en wat gegevens in de database worden gepropt. In het kort bevat het script de volgende code, waarbij filename de name is die vanuit het form (natuurlijk enctype="multipart/form-data") naar dit script gestuurd wordt:

PHP:
1
2
3
4
5
6
7
$str1 = is_uploaded_file($_FILES['filename']['tmp_name']);
$str2 = $_FILES['filename']['tmp_name'];
$str3 = $_FILES['filename']['name'];

$uploaddir = "/opt/guide/www.hupse.nl/HTML/test/";

move_uploaded_file($str2,$uploaddir.$str3);


De volgende error treedt op bij het uploaden:

Warning: Unable to move '/var/spool/php/phpKRwfdd' to '/opt/guide/www.hupse.nl/HTML/test/test2.jpg' in /opt/guide/www.hupse.nl/HTML/functions.php on line 13

Hij maakt wel een bestandje aan op de juiste plek met de juiste naam van 0 bytes. De rechten op de directory 'test' staan op volledig voor iedereen (777 geloofik is dat)

Iemand een idee? Het heeft wel gewerkt, maar nu opeens niet meer, dat is ook het rare. (Voor pasen werkte het nog goed, nu probeerde ik voor de grap eens een bestand van 500kb up te loaden, en sinds dien krijg ik deze error..)

Acties:
  • 0 Henk 'm!

  • T. van Beek
  • Registratie: Januari 2002
  • Laatst online: 13-10-2024

T. van Beek

flickritus

Heb je rechten opnieuwe ingesteld? Misschien iets fout op server gegaan?

http://flickr.com/photos/itommy/


Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
T. van Beek schreef op 20 april 2003 @ 23:07:
Heb je rechten opnieuwe ingesteld? Misschien iets fout op server gegaan?
De rechten op de doel-directory staan op 777. Ik weet niet of er op de server iets fout gaat. Het lijkt allemaal wel goed te gaan. Als ik
is_uploaded_file($_FILES['filename']['tmp_name'])
bekijk komt hier de waarde 1 uit, wat betekent dat de upload gelukt is. Echter de move lijkt niet te lukken :(

Acties:
  • 0 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 14:45
Staat "safe mode" aan? Dan wil er nog wel eens wat gedoe zijn met de UID van de dirs. Daarnaast is het een idee om de config-directieven "file_uploads", "upload_max_filesize", "upload_tmp_dir", and "post_max_size" te checken.

Tenslotte doet move_uploaded_file al een is_uploaded_file, dus die kun je skippen. Je moet dan alleen het resultaat van de move checken.

Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
Het volgende komt uit een testje:

is_uploaded_file = 1
file_uploads =
upload_max_filesize = 26214400
upload_tmp_dir = /var/spool/php
post_max_size = 26214400

file_uploads geeft niks terug als ik hem opvraag, dat klopt niet denkik, want je zou een 1 verwachten (toch?) Maar het rare is dat het uploaden vorige week nog wel werkte en volgens de eigenaar van de server niets veranderd is..

Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
Thanks, maar wat bedoel je precies op deze pagina? Ik zie een aantal dingen, misschien moet ik eens die copy proberen ipv move_uploaded_file?

Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
By the way, ik lees hier ook ergens het volgende:

Opmerking: move_uploaded_file() heeft geen last van normale safe-mode UID-beperkingen. Dit is niet onveilig, omdat move_uploaded_file() alleen werkt op bestanden die zijn geupload met PHP.

Dus het kan ook niet echt aan een plotseling ingeschakelde safe-mode liggen..

Acties:
  • 0 Henk 'm!

  • Possstema
  • Registratie: Juli 2002
  • Laatst online: 07-04 11:50
vraag is beantwoord, er stond een functie tussen die er niet hoorde.

[ Voor 97% gewijzigd door Possstema op 21-04-2003 21:27 ]


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Possstema schreef op 21 April 2003 @ 20:35:
mag ik even vragen wat er fout is in mij script van de topicstarter?
[...]
Het is wel een beetje topicvern**king maargoed; zet je error reporting eens aan voor het 1e probleem; en ga de mySQL manual lezen voor je 2e probleem

http://www.mysql.com/sear...ocumentation%2Findex.html

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

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
$baseDir = "/home/upload/files/";

if (isset($_FILES['uploadedFile']['name']) && $_FILES['uploadedFile']['name'] != ""){
    if (file_exists("$baseDir/".$_FILES['uploadedFile']['name'])) die("The filename specified already exists.");
    move_uploaded_file($_FILES['uploadedFile']['tmp_name'], $baseDir.$_FILES['uploadedFile']['name']) or die("The file you are trying to upload couldn't be copied to the server.");
    switch ($_FILES['uploadedFile']['error']){
        case 0:
            echo $_FILES['uploadedFile']['name']."(".$_FILES['uploadedFile']['size']." bytes) was uploaded succesfull.";
            break;
        case 1:
            echo "The uploaded file exceeds the upload_max_filesize directive in php.ini.";
            break;
        case 2:
            echo "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form.";
            break;
        case 3:
            echo "The uploaded file was only partially uploaded.";
            break;
        case 4:
            echo "No file was uploaded.";
            break;
        case 5:
            echo "Uploaded file size 0 bytes";
            break;
    }
}

?>
        <form method="post" enctype="multipart/form-data">
            <p>File to upload: <input type="file" name="uploadedFile" size="30"><input type="submit" value="Upload"></p>
        </form>
Aan de TS; heb je hier iets aan? Wat geeft een $_FILES['uploadedFile']['error'] bij jou :?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:05

crisp

Devver

Pixelated

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
Ok thanks mensen, maar ik kom er nog niet uit. Wat is nu precies het probleem in het stukje code in mijn openingspost? Ik zie allemaal interessante code maar snap nog steeds niet precies waar het probleem ligt.. Sorry als het een beetje dom overkomt :(

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 22:05

crisp

Devver

Pixelated

doet eens een echo $_FILES['filename']['error'];
komt daar nog wat uit?

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
$_FILES['filename']['error'] geeft een 0.
Dus het uploaden gaat wel goed denkik? Alleen het moven dus niet :(

[ Voor 69% gewijzigd door _FlasH_ op 21-04-2003 22:40 ]


Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
Onderstaand stukje code geeft dit resultaat:

is_uploaded_file = 1
file_uploads =
upload_max_filesize = 26214400
upload_tmp_dir = /var/spool/php
post_max_size = 26214400
0
Warning: Unable to move '/var/spool/php/phpHCPhzA' to '/opt/guide/www.hupse.nl/HTML/test/test2.jpg' in /opt/guide/www.hupse.nl/HTML/functions.php on line 22

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$str1 = is_uploaded_file($_FILES['filename']['tmp_name']);
$str2 = $_FILES['filename']['tmp_name'];
$str3 = $_FILES['filename']['name'];
$uploaddir = "/opt/guide/www.hupse.nl/HTML/test/";

echo "is_uploaded_file = ".$str1."<br>";
echo "file_uploads = ".get_cfg_var(file_uploads)."<br>";
echo "upload_max_filesize = ".get_cfg_var(upload_max_filesize)."<br>";
echo "upload_tmp_dir = ".get_cfg_var(upload_tmp_dir)."<br>";
echo "post_max_size = ".get_cfg_var(post_max_size)."<br>";

echo $_FILES['filename']['error'];

move_uploaded_file($str2,$uploaddir.$str3);

Acties:
  • 0 Henk 'm!

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Goed dan; wat zijn de rechten van phpHCPhzA (welke User/Group met welke read/write rechten en wat zijn de rechten van /opt/guide/www.hupse.nl/HTML/test/. Onder welke user/group draait je webserver? Heeft die soms toevallig geen leesrechten in die /var/spool/php/ directory :?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


Acties:
  • 0 Henk 'm!

  • bartjenl
  • Registratie: Januari 2002
  • Laatst online: 14-09 19:29
ik zou eerst 'ns kijken naar functions.php en dan naar regel 13... (welke regel is 13?)

"Do not worry about your difficulties in mathematics; I can assure you that mine are still greater" - Albert Einstein (1879-1955)


Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
bartjenl schreef op 21 April 2003 @ 23:34:
ik zou eerst 'ns kijken naar functions.php en dan naar regel 13... (welke regel is 13?)
Regel 13 is de move_uploaded_file..

Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
Spider.007 schreef op 21 April 2003 @ 22:52:
Goed dan; wat zijn de rechten van phpHCPhzA (welke User/Group met welke read/write rechten en wat zijn de rechten van /opt/guide/www.hupse.nl/HTML/test/. Onder welke user/group draait je webserver? Heeft die soms toevallig geen leesrechten in die /var/spool/php/ directory :?
op /opt/guide/www.hupse.nl/HTML/test/ hebben owner, group en public alle rechten (read write execute).

Van die tijdelijke directory weet ik het niet, daar kan ik niet bij. Het is niet mijn webserver, ik huur die ruimte, met de domeinnaam enzo, bij een bedrijfje. Maar volgens hen is er niks veranderd aan de server instellingen enzo... (Want het werkte vorige week wel.)

Acties:
  • 0 Henk 'm!

  • Morrar
  • Registratie: Juni 2002
  • Laatst online: 14:45
Zou het misschien ook kunnen dat je de file niet mag moven omdat je de tijdelijke file niet uit de temp-dir mag deleten? Je zou ook via andere methoden kunnen checken (met PHP) of je uit de temp-dir mag lezen. Probeer bijvoorbeeld een dir-listing: http://www.php.net/manual/nl/function.opendir.php. Wellicht mag lezen wel, maar deleten niet.

Tenslotte zal er toch wat veranderd moeten zijn. Als dezelfde code de ene week wel werkt en de andere weer niet, dan kan dat natuurlijk niet zomaar. Kan me goed voorstellen dat ze bij dat bedrijfje dat gewoon ff vergeten zijn. Een kleine wijziging in de PHP-ini is al voldoende dus...

Acties:
  • 0 Henk 'm!

  • _FlasH_
  • Registratie: April 2003
  • Laatst online: 07-09 14:29
Misschien was dat het wel, inderdaad *was*... Superwazig, vanmorgen voor het werken nog eens geprobeert iets te uploaden, ging mis. Net thuis en doettie het weer wel :?
Naja ik ga toch even een mailtje naar de provider doen want dit is wel erg raar. Misschien hadden ze de tijdelijke dir toch afgeschermd ofzo..
Pagina: 1