[PHP] Fout bij FTP-upload

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
Ik heb net mijn site verhuist van m'n eigen server naar een hostingservice. Nu treed het probleem op dat m'n ftp-upload niet meer werkt.
Het is een simpel scriptje dat ervoor zorgt dat normaal gesproken een aantal foto's uit een webform worden geupload naar een server. Op m'n eigen server werkte dit perfect, maar nu ik verhuist ben krijg ik bij het uploaden foutmeldingen van het volgende soort:

Warning: ftp_put(): /tmp/phpta0vom: No such file or directory in /var/www/.../.../...

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
<?
$uploaddir = "../HTML/pics/fotos/" . $maincat . "/" . $subcat . "/";

//FTP UPLOAD
                            
$server='ftp.mijn_server.nl'; // ftp server 
$connection = ftp_connect($server); // connection 

// login to ftp server 

$result = ftp_login($connection, $username, $password); 
        
$tmpname = $_FILES['uploadFile'. $x]['tmp_name'];
$finalname = $_FILES['uploadFile'. $x]['name'];
        
// check if connection was made 
if ((!$connection) || (!$result)) { 
   $move = false; 
   exit(); 
} else { 
   ftp_chdir($connection, $uploaddir); // go to destination dir 
   ftp_put($connection, $finalname, $tmpname, FTP_BINARY); 
   $move = true;
}
?>


Vraag is dus: wat is de fout, en hoe los ik het op?

[ Voor 9% gewijzigd door Gummbahla op 27-12-2004 12:59 ]


Acties:
  • 0 Henk 'm!

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
De fout is dat de tempdir niet bestaat. Dit is op te lossen door de tempdir aan te maken of om naar een andere tempdir te verwijzen.

Acties:
  • 0 Henk 'm!

  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
Ik kan wel 'n tempdir aanmaken, maar hoe zorg ik er dan voor dat m'n files ook daadwerkelijk in die directory terecht komen?
Ik maak nlk gebruik van een upload-form als het onderstaande:

code:
1
2
3
4
<form name="form1" enctype="multipart/form-data" method="post" action="upload.php">
   <input name="bla" type="file" id="bla">
   <input type="submit" name="Submit" value="Do it!">
</form>


Zoals gezegd draait m'n site op een shared-hosting server en heb ik dus niet de mogelijkheid om zelf m'n tempdir voor uploads te bepalen.
Is er niet een manier om direct via FTP bestanden van de client naar de server over te sluizen, door bijv. het lokale adres van het betand op de client te gebruiken? Of is er nog 'n andere manier om dit probleempje te omzeilen?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Ten eerste is de foutmelding zo duidelijk als ik weet niet wat. Hij kan gewoon het bestand niet vinden. Kijk daar eerst eens naar.

Daarnaast ben ik erg benieuwd waarom je uberhaupt ftp gebruikt. heb je twee verschillende servers? In je bericht hierboven heb je het over 1 client en 1 server.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
OK, ik zal het proberen nóg eens uit te leggen:

1. De files die je via het form selecteerd worden, zouden naar een temp-dir op de server moeten worden geuploaded. Echter kan ik niet zien hoe/of dit gebeurt, daar ik geen directe toegang tot deze directory heb. (ik bevind me immers op een SHARED-hosting server, en kan per FTP alleen mijn eigen webspace benaderen)

2. Ik gebruik FTP om toegangs-technische redenen. (user rights)

Het probleem wat er dus overblijft, is dat ik geen idee in welke temp-dir mijn geuploade bestanden terecht komen en óf ze er überhaupt terecht komen.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 21-09 02:21

Janoz

Moderator Devschuur®

!litemod

Probeer in eerste instantie gewoon eens goed te debuggen. PLaats door je code enkele echo's om te kijken of variabelen ook de waarde hebben die je zou verwachten. Daarnaast kunnen wij vanaf hier aan een stukje code en wat geschreeuw vanaf jou kant natuurlijk al helemaal niet zien in welke temp directory je bestanden terecht komen ;).

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Gummbahla
  • Registratie: Februari 2003
  • Laatst online: 12-09 09:31
Hmm... sorry als het als geschreeuw overkwam ;)
Het probleem is nu opgelost (dat het nog 3 dagen heeft mogen duren... 8)7), het had te maken met chmod rights, die niet doorwerkten op subdirs....
Pagina: 1