Avatar billede orpheus Nybegynder
16. januar 2013 - 08:19 Der er 22 kommentarer og
1 løsning

Warning: ftp_put() [function.ftp-put]: Type set to A

Hej alle,

jeg skal have uploaded en txt-fil til en ftp-server, og det virker fint når jeg upper den tilmin egen ser, men når jeg prøver til den sti ( \PROD\EDILIGHT\D0701-FROM-EDILIGHT ) de har sendt mig, så får jeg fejlen:

Warning: ftp_put() [function.ftp-put]: Type set to A

Jeg synes snart at jeg har prøvet alle mulige kombinationer at stien og om det er FTP_ASCII eller Binary giver bare 2 forskellige fejlmeldinger.

Scriptet er følgende:

$file = $Fakturanr.".txt";
$remote_file = "\PROD\EDILIGHT\D0701-FROM-EDILIGHT/";

// set up basic connection
$conn_id = ftp_connect($host);

// login with username and password
$login_result = ftp_login($conn_id, $usr, $pwd);


// check connection
if ((!$conn_id) || (!$login_result)) {
    die("FTP connection has failed !");
}

// try to change the directory to somedir
if (ftp_chdir($conn_id, "\PROD\EDILIGHT\D0701-FROM-EDILIGHT/")) {
    echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Couldn't change directory\n";
}

// upload a file
if (ftp_put($conn_id, $remote_file.'/'.$file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);

Håber at der er nogen derude der kan gennemskue hvad problemet kan være.

På forhånd tak.
Avatar billede scootergrisen Nybegynder
16. januar 2013 - 10:32 #1
Prøv med / i din sti i stedet for \.

Ellers bliver tegnet efter \ espacet når du bruger "".
Avatar billede orpheus Nybegynder
16. januar 2013 - 10:48 #2
/PROD/EDILIGHT/D0701-FROM-EDILIGHT, gjorde desværre ingen forskel.
Avatar billede DeeDawg Nybegynder
16. januar 2013 - 15:53 #3
Når du siger at det virker med din egen server, så går jeg altså ud fra at du skal uploade til en anden server end den din PHP-installation kører på.

I så fald, så giver den sti ingen mening. Der mangler et domæne eller en IP.

Er min antagelse forkert, er der andre problemer som kan spille ind over.
Avatar billede orpheus Nybegynder
16. januar 2013 - 16:25 #4
Ja, den skal uppes fra en server til anden, hvis jeg upper fra serveren over til min egen server virker det. Domænenavnet ( ftphub.xxx.dk ) er $host.
Avatar billede olebole Juniormester
16. januar 2013 - 18:49 #5
<ole>

Du roder rundt i dine slashes. Somme tider bruger du alm. slashes - andre gange backslashes. Vær konsekvent og brug alm. (forward) slashes. F.eks:

$remote_file = "\PROD\EDILIGHT\D0701-FROM-EDILIGHT/";
// og:
if (ftp_put($conn_id, $remote_file.'/'.$file, $file, FTP_ASCII)) {

// resulterer i stien:
\PROD\EDILIGHT\D0701-FROM-EDILIGHT//1234.txt

Det er nok ikke så hensigtsmæssigt  =)

Derudover kører du jo en ftp_chdir, hvorfor du ikke skal have hele sourcefilens sti med i ftp_put - men destinationsfilen skal være angivet med hele stien.

/mvh
</bole>
Avatar billede orpheus Nybegynder
16. januar 2013 - 20:02 #6
Kan jeg måske bare helt fjerne ftp_chdir?

$file = $Fakturanr.".txt";
$remote_file = "/PROD/EDILIGHT/D0701-FROM-EDILIGHT";

// set up basic connection
$conn_id = ftp_connect($host);

// login with username and password
$login_result = ftp_login($conn_id, $usr, $pwd);


// check connection
if ((!$conn_id) || (!$login_result)) {
    die("FTP connection has failed !");
}

// try to change the directory to somedir
if (ftp_chdir($conn_id, "/PROD/EDILIGHT/D0701-FROM-EDILIGHT")) {
    echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Couldn't change directory\n";
}

// upload a file
if (ftp_put($conn_id, $remote_file.'/'.$file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}


// close the connection
ftp_close($conn_id);
Avatar billede olebole Juniormester
16. januar 2013 - 20:29 #7
Kan jeg måske bare helt fjerne ftp_chdir? >> Det kommer an på din begrundelse for at have den med i første omgeng  =)

Prøv evt:

<?php
$file = $Fakturanr.".txt";
$remote_file = "/PROD/EDILIGHT/D0701-FROM-EDILIGHT";
$upload_path = 'C:/path/to/folder';

// set up basic connection
$conn_id = ftp_connect($host);

// login with username and password
$login_result = ftp_login($conn_id, $usr, $pwd);


// check connection
if ((!$conn_id) || (!$login_result)) {
    die("FTP connection has failed !");
}
else echo "Connection succeeded.<br>\r\n";

// Turn on passive mode
ftp_pasv($conn_id, true);

// upload a file
if (ftp_put($conn_id, $remote_file.'/'.$file, $upload_path.'/'.$file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);
?>
Avatar billede orpheus Nybegynder
16. januar 2013 - 20:39 #8
Der er mange der har haft fingrene i suppen her efterhånden. Kunden der gav mig stien "\PROD\EDILIGHT\D0701-FROM-EDILIGHT" spurgte om jeg havde mulighed for "for at lave en CWD", IT-manden sagde jeg så skulle bruge "ftp_chdir".
Avatar billede olebole Juniormester
16. januar 2013 - 20:45 #9
Hvad er det præcist, du gerne vil?
Avatar billede orpheus Nybegynder
16. januar 2013 - 20:56 #10
Jeg vil have uploaded en text-fil til ftphub.supergros.dk, via den sti jeg har fået udleveret "\PROD\EDILIGHT\D0701-FROM-EDILIGHT", men får denne fejl:

Warning: ftp_put() [function.ftp-put]: Type set to A...

når jeg bruger dette script:

$file = $Fakturanr.".txt";
$remote_file = "/PROD/EDILIGHT/D0701-FROM-EDILIGHT";

// set up basic connection
$conn_id = ftp_connect($host);

// login with username and password
$login_result = ftp_login($conn_id, $usr, $pwd);


// check connection
if ((!$conn_id) || (!$login_result)) {
    die("FTP connection has failed !");
}

// try to change the directory to somedir
if (ftp_chdir($conn_id, "/PROD/EDILIGHT/D0701-FROM-EDILIGHT")) {
    echo "Current directory is now: " . ftp_pwd($conn_id) . "\n";
} else {
    echo "Couldn't change directory\n";
}

// upload a file
if (ftp_put($conn_id, $remote_file.'/'.$file, $file, FTP_ASCII)) {
echo "successfully uploaded $file\n";
} else {
echo "There was a problem while uploading $file\n";
}

// close the connection
ftp_close($conn_id);
Avatar billede olebole Juniormester
16. januar 2013 - 21:17 #11
Det er ikke en fejl, men en advarsel, som ikke stopper resten af afviklingen. Får du andet skrevet ud? Har du tjekket, om filen faktisk bliver uploaded?

Hvad siger advarslen, hvis du skifter til 'FTP_BINARY'?
Avatar billede orpheus Nybegynder
16. januar 2013 - 21:25 #12
Jeg har skrevet med supergros flere gange og de arbejde også på at løse problemet, så jeg må gå ud fra at de ikke har fået filen. Her er hele mit output:

Current directory is now: /PROD/EDILIGHT/D0701-FROM-EDILIGHT
Warning: ftp_put() [function.ftp-put]: Type set to A...
There was a problem while uploading 5932.txt
Avatar billede orpheus Nybegynder
16. januar 2013 - 23:04 #13
Supergros arbejder også på at finde en løsning, så jeg må gå ud fra at de ikke har modtaget tekst-filen. Her er hele mit output:

Current directory is now: /PROD/EDILIGHT/D0701-FROM-EDILIGHT
Warning: ftp_put() [function.ftp-put]: Type set to A. ... on line 126
There was a problem while uploading 5932.txt

Linje 126 er: if (ftp_put($conn_id, $remote_file.'/'.$file, $file, FTP_ASCII)) {

Hvis jeg skriver BINARY får jeg:

Warning: ftp_put() [function.ftp-put]: Type set to I. ... on line 126
Avatar billede olebole Juniormester
17. januar 2013 - 14:06 #14
Et desparat bud: Prøv at udskifte FTP_ASCII ud med tallet 1 -eller FTP_BINARY med tallet 2. Giver det samme warnings?
Avatar billede orpheus Nybegynder
17. januar 2013 - 14:28 #15
Ja, de giver hhv A og I også.
Avatar billede olebole Juniormester
17. januar 2013 - 15:07 #16
Virker det fra en server på nettet? Er det kun på din lokale server, det ikke virker?
Avatar billede orpheus Nybegynder
17. januar 2013 - 15:17 #17
De er alle på nettet, og er alle forskellige servere, jeg kører ingen lokal server.
Avatar billede orpheus Nybegynder
18. januar 2013 - 10:21 #18
Nå, Supergros slog os på stregen, løsningen var en simpel:

ftp_pasv($conn_id, true);

Tak for den ihærdige indsats, olebole, smid et svar.
Avatar billede olebole Juniormester
18. januar 2013 - 17:49 #19
Det var vist, hvad jeg foreslog i #7  =)
Avatar billede olebole Juniormester
18. januar 2013 - 17:50 #20
Ellers tak, jeg samler ikke point. Læg selv et svar og accepter det, så tråden lukkes  =)
Avatar billede orpheus Nybegynder
18. januar 2013 - 18:15 #21
Shit, den er jeg skøjtet helt henover, sorry :) Det gør jeg heller ikke, men ok. Mange tak for det.
Avatar billede olebole Juniormester
18. januar 2013 - 18:28 #22
Hehe ... selvtak. Det kan være, jeg fremover skal være mere konsekvent og highlight'e ændringer med rødt  =)
Avatar billede orpheus Nybegynder
18. januar 2013 - 18:35 #23
Haha, det er nok mere mig der bare skal være lidt mere frisk ;)
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

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