Avatar billede trikz4h Nybegynder
12. oktober 2004 - 17:05 Der er 37 kommentarer og
2 løsninger

FTP upload - Kan ikke få den til at uploade?

Hej exp.dk

jeg sidder her med det dejlige script fra php.net om FTP upload. Ja som mange andre kan jeg heller ikke finde ud af det, har prøvet at læse de fleste spm igennem herinde omkring det, men fandt ikke rigtigt et svar på min bøn :(

Upload.php:
<form action='ftp.php' method="POST">
<input type='file' name='file'><br>
<input type='text' name='name'><br>
<input type='submit'>
</form>

ftp.php:
<?php
// set up basic connection
$ftp_server = "192.168.1.26";
$conn_id = ftp_connect($ftp_server);

// login with username and password
$ftp_user_name = "trixor";
$ftp_user_pass = "pass";
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection
if ((!$conn_id) || (!$login_result)) {
      echo "FTP connection has failed!";
      echo "Attempted to connect to $ftp_server for user $ftp_user_name";
      exit;
  } else {
      echo "Connected to $ftp_server, for user $ftp_user_name";
  }

// upload the file

//når man logger ind på serveren så får man "web" frem på skærmen, web=D:\web\
$destination_file    = "/billede1.jpg";
$source_file        = $_POST['file'];


$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// check upload status
if (!$upload) {
      echo "FTP upload has failed!";
  } else {
      echo "Uploaded $source_file to $ftp_server as $destination_file";
  }

// close the FTP stream
ftp_close($conn_id);
?>



Hvor er det den går galt? :S
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 17:24 #1
Jeg har et par forslag, men ved ikke om det hjælper.

i formularen mangler du:

<form action="ftp.php" enctype="multipart/form-data" method="POST">

og så ved:

$source_file = $_POST['file'];

skal det være:

$source_file = $_FILES['file'];

Prøv det - det er mit bedste bud (men sikkert ikke nok).
Avatar billede trikz4h Nybegynder
12. oktober 2004 - 17:32 #2
Hmm nu giver den bare en anden fejl, prøver at arbejde videre derfra alligevel :)
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 17:33 #3
hvilken fejl ?
Avatar billede trikz4h Nybegynder
12. oktober 2004 - 20:24 #4
Warning: ftp_put(): Invalid Path in D:\web\TrixoR v5\sites\ftp.php on line 28
28: $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 20:27 #5
$destination_file    = $_SERVER['DOCUMENT_ROOT']."/billede1.jpg";

prøv det :)
Avatar billede trikz4h Nybegynder
12. oktober 2004 - 20:31 #6
Virker det ikke lidt modsat?

Min kode ser sådan ud nu:
// upload the file
$destination_file  = $_SERVER['DOCUMENT_ROOT']."/billede1.jpg";
$file                = $_FILES['file'];
$filename            = $file['name'];
$source_file        = $file['tmp_name'];

$file bliver til et array, se http://trixor.lir.dk/TrixoR%20v5/sites/upload.php -> ftp.php
Avatar billede trikz4h Nybegynder
12. oktober 2004 - 20:32 #7
ændrede lige $source_file til $file['name'] nu giver dem ingen fejl, men stadig "upload failed" ;(
Avatar billede trikz4h Nybegynder
12. oktober 2004 - 20:46 #8
Så lige i min FTP-log:
Tue Oct 12 20:33:28 2004  36  Incoming connection request on interface 192.168.1.26
Tue Oct 12 20:33:28 2004  36  Connection request accepted from 192.168.1.26
Tue Oct 12 20:33:28 2004  36  USER trixor
Tue Oct 12 20:33:28 2004  36  PASS ***********
Tue Oct 12 20:33:28 2004  36  QUIT
Tue Oct 12 20:33:28 2004  36  The connection was closed by the remote socket.
Tue Oct 12 20:33:28 2004  36  Connection terminated.

Mon den får for lidt tid til at gennemføre scriptet i ?
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 21:02 #9
Prøv lige at kopiere scriptet ind i sin helhed, som det ser ud nu. Så prøver jeg at køre det på mit webhotel...
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 21:28 #10
...ellers har jeg et fint script til upload (dog ikke via ftp), som virker perfekt. Men det skal være ftp her ?
Avatar billede trikz4h Nybegynder
12. oktober 2004 - 21:35 #11
nej det skal bare kunne uploade billeder, men kan jeg godt køre det på en online Webserver (free)? fx. frac.dk ?
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 21:48 #12
ja, jeg kører det på B-one
Avatar billede baitianlong Nybegynder
12. oktober 2004 - 21:57 #13
<?php
if(isset($_GET['function'])) {
  if($_FILES['upload_file']['error'] != UPLOAD_ERR_OK) {
      print "<script>alert(\"Error in upload of file\");</script>";
  } else {
      move_uploaded_file($_FILES['upload_file']['tmp_name'], $_SERVER['DOCUMENT_ROOT']."/".$_FILES['upload_file']['name']);
  }
}
?>
<html>   
<form enctype="multipart/form-data" action="<?= $_SERVER['SCRIPT_NAME'] ?>?function=upload" method="post">
<table align="center" width="300" border="1" cellpadding="5">
<tr>
<td align="center"><input type="file" name="upload_file"></td>
</tr>
<tr>
<td align="center"><input type="submit" value="Upload file" style="width:120px;"></td>
</tr>
</table>
</form>
</html>   

Virker perfekt. Billedet / filen havner samme sted som php-siden ligger. :)
Avatar billede trikz4h Nybegynder
13. oktober 2004 - 13:36 #14
Warning: move_uploaded_file(): SAFE MODE Restriction in effect. The script whose uid is 4873 is not allowed to access /web/www/frac/users owned by uid 0 in /web/www/frac/users/trixor/upload.php on line 6

Sq ked af det, men det kan man ikke på frac.dk :(

Må bar ha det FTP-script op og køre :S
Avatar billede baitianlong Nybegynder
13. oktober 2004 - 15:44 #15
ok, så lad os prøve at få det fikset. Jeg har et eksempel fra en bog, det finder jeg lige :)
Avatar billede trikz4h Nybegynder
13. oktober 2004 - 16:04 #16
jammen helt sikkert, jeg fandt også lige noget andet, nu giver den bare en anden fejl :( hehe.
Avatar billede baitianlong Nybegynder
13. oktober 2004 - 16:10 #17
Core PHP programming side 337 :)

<?php
//connect to server
if(!($ftp = ftp_connect("www.leonatkinson.com"))) {
  print("unable to connect!<br>\n");
  exit();
}
//log in
if(!ftp_login($ftp, "username", "corephp@")) {
  print("unable to login!<br>\n");
  exit();
}
//copy local file to remote server
ftp_put($ftp, "/uploads/data.txt", "/tmp/data.txt", FTP_TEXT);

print("File uploaded!<br>\n");

ftp_quit($ftp);
?>

Prøv at ændre de nødvendige parametre, og kør svinet :)
Avatar billede baitianlong Nybegynder
13. oktober 2004 - 16:29 #18
Der er også et fint eksempel fra ham her:

kiwo1 at yahoo dot com
28-Aug-2002 07:05

På denne side:

http://dk.php.net/manual/en/function.ftp-put.php
Avatar billede trikz4h Nybegynder
13. oktober 2004 - 16:33 #19
jaaa men tror mit problem ligger i destination_file eller source_file, ved ikk hvordan jeg "difinere" dem via variabler som fx. $_SERVER['Document_root'] evt.?

Nogen ideer ?
Avatar billede trikz4h Nybegynder
13. oktober 2004 - 16:38 #20
Nu vil den ikke "få adgang" tænkte om det måske var pga rettighederne ?
Avatar billede baitianlong Nybegynder
13. oktober 2004 - 16:56 #21
har du prøvet med det snabela i passwordet, som PHP-bogen har ? Blot en tanke.

Sourcefilen vælges jo med browse-knappen, så det skulle ikke være noget problem.
Destination-filen skal være: $_SERVER['DOCUMENT_ROOT']."/".$_FILES['file']['name']
Avatar billede trikz4h Nybegynder
13. oktober 2004 - 17:02 #22
Connected to ftp.frac.dk, for user trixor

Warning: ftp_put(): Unable to access in /web/www/frac/users/trixor/sites/ftp.php on line 27
FTP upload has failed!

[code]
$destination_file    = $_SERVER['DOCUMENT_ROOT']."/".$_FILES['file']['name'];
$source_file        = $_FILES['file']['name'];


27: $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);

// check upload status
if (!$upload) {
      echo "FTP upload has failed!";
  } else {
Avatar billede baitianlong Nybegynder
13. oktober 2004 - 17:08 #23
Fjern ['name'] fra $source_file
Avatar billede trikz4h Nybegynder
14. oktober 2004 - 00:56 #24
Nu er det gjort, nu giver den bare denne fejl :S ->
Warning: ftp_put() expects parameter 3 to be string, array given in /web/www/frac/users/trixor/sites/ftp.php on line 28
FTP upload has failed!

pga. $source_file = $_FILES['uploadfile'] (har renamet den i formen også :)) er et array:
Array ( [name] => billede3.jpg [type] => image/jpeg [tmp_name] => /tmp/php69SyR0 [error] => 0 [size] => 7408 )
Hva så ? :S
Avatar billede trikz4h Nybegynder
14. oktober 2004 - 14:14 #25
Kom til at tænke på, når jeg skriver $_SERVER['Document_root'] så kommer jeg helt ud i /web/www/frac/users -> men mine filer må jo ligge under /web/www/frac/users/trixor/ ?

Hvad skriver din hvis du "echo $_SERVER['document_root'];" på b-one :)
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 14:25 #26
Så skriver den ingenting ;)

Men hvis jeg skriver echo $_SERVER['DOCUMENT_ROOT'] så skriver den:

/customers/legende.dk/legende.dk/httpd.www

Jeg kan godt se problemet med at $_FILES['uploadfile'] er et array. Det parameter skal være noget hen ad "/filer/billeder/billede.jpg" hmmm
Avatar billede trikz4h Nybegynder
14. oktober 2004 - 14:27 #27
ja nemlig, kan ikke se hvordan fanden jeg skal få den til det :S
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 14:39 #28
Jeg har en syret ide, men ved ikke om det virker, noget med:

<form action="upload.php" enctype="multipart/form-data" onsubmit="this.adresse.value=this.uploadfile.value" method="post">
<input type='file' name='uploadfile'><br>
<input type='hidden' name='adresse'><br>
<input type='submit'>
</form>

Prøv så med:

$adresse = $_POST['adresse'];
print $adresse;

Måske kan vi stjæle adressen fra file-feltet på den måde :)
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 14:40 #29
Kan du se ide'en. Hvis det virker skal 3. parameter i ftp_put() være $adresse :)
Avatar billede trikz4h Nybegynder
14. oktober 2004 - 14:43 #30
Kan godt se ideen men wooow det der javascript, som det nok er - der står jeg af :D hehe... tester lige
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 14:46 #31
Jeg har prøvet at teste. Det virker vist :p
Avatar billede trikz4h Nybegynder
14. oktober 2004 - 14:49 #32
så burde jeg slå frac.dk ihjel :D hehe

Det virker ikk på frac.. finder fandme et nyt hotel :D hehe
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 14:52 #33
Hvad giver den af fejl nu ? For filens adresse kommer fint med
Avatar billede trikz4h Nybegynder
14. oktober 2004 - 15:21 #34
unable to access in bla bla bla line 30

(intet filnavn, no nothing :P)
= lorte websted :)
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 15:25 #35
De skal dø !!
Avatar billede trikz4h Nybegynder
14. oktober 2004 - 15:45 #36
Hehe jaaa... grinR... fedt...
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 16:08 #37
Tak for points'ne - man må da sige vi prøvede bravt ! :)
Avatar billede trikz4h Nybegynder
14. oktober 2004 - 16:09 #38
Ja og fik da et script der BURDE virke :P hehe
Avatar billede baitianlong Nybegynder
14. oktober 2004 - 16:16 #39
ja mand
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester