Autor Zpráva
kuba_kuba
Profil
jde mi o to že kdyz uploaduju obrazek na server tak jestli jde zaroven ten samí obrazek uploadovat na jiný server na jedno kliknutí nechci mít dva formuláře každy zvlast na kazdym serveru
Mike8748
Profil
no, muzes to uploadovat na jeden, a tam to pomoci FTP funkci presunout na dalsi
kuba_kuba
Profil
to mi prave nejde zkousel sem copy a move
djlj
Profil
nejde
„Nejde“ můžou být tisíce různých chyb. A tohle není věštírna. Copy umí, při vhodném nastavení php, kopírovat ze vzdálených serverů.

To je jako napsat: Koupit jsem si auto a ono mi nejede.
kuba_kuba
Profil
asi takto
predtim je script na zpracovani je plne funkcni jen chcu pridat ten upload ven

......

@move_uploaded_file($_FILES["foto"]["tmp_name"], "../obrazky/$name");
@move_uploaded_file($_FILES["foto"]["tmp_name"], "http://www.domena.cz/obrazky/$name");

takto sem to napsal na server kde je script to nakopiruje ale na ten druhy ne
zkoušel sem i

@move_uploaded_file($_FILES["foto"]["tmp_name"], "../obrazky/$name");
@move_uploaded_file("../obrazky/$name", "http://www.domena.cz/obrazky/$name");

a i variantu s copy stejne
djlj
Profil
move_uploaded_file přemísťuje, jak je již z názvu patrno, jen právně uploadnuté soubory. Tedy určitě ne soubory z nějaké složky obrazky. Kdyby sis ale oddělal ten zavináč na potlačení výpisu chyb, zjistíš to i sám, a to mnohem dříve a rychleji.
Mike8748
Profil
>> nejde

trochu se rozbasni a rekni jakou chybu to pise

resp. smaz ty zavinace (je to prasarna) a pak rekni jakou chybu to pise
kuba_kuba
Profil
predelal sem to


function moveTo($file, $from, $to){
$copy = copy($from . $file, $to . $file);
return ($copy) ? true : false;
}

moveTo($name, "http://www.domena1.cz/obrazky/","http://www.domena2.cz/obrazky/");

zkouska z localhostu
výpis hlášky

Warning: copy(http://www.domena1.cz/obrazky/5_galerie_1191668775.jpg) [function.copy]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in D:wwwdomenapagesakce_upload_foto_clanek.php on line 8


na řadku 8 je $copy = copy($from . $file, $to . $file); z te funkce
djlj
Profil
Kdyby sis přečetl to varování, které ti to napsalo, tak zjistíš, že ten soubor na zadané adrese neexistuje.
kuba_kuba
Profil
to je zajimave ten soubor tam je

function moveTo($file, $from, $to){
$copy = copy($from . $file, $to . $file);
return ($copy) ? true : false;
}

nejdřive se uloži
move_uploaded_file($_FILES["foto"]["tmp_name"], "http://www.domena1.cz/obrazky/$name");

a hned na to se nacte z toho umisteni
moveTo($name, "http://www.domena1.cz/obrazky/","http://www.domena2.cz/obrazky/");

zeby ten prvni script move nestihl ulozit soubor a zacal hned kopirovat? podle mne to nejde dokud se nedokonci jedna akce nemuze zacit druha takze si myslim že problem je jinde
kuba_kuba
Profil
mam pocit ze copy nejde pouzit z domeny na domenu a musi teda existovat pokud existuje jina funkce
djlj
Profil
Tímhle ten soubor uložíš asi těžko:
move_uploaded_file($_FILES["foto"]["tmp_name"], "http://www.domena1.cz/obrazky/$name");

Myslím, že tobě by se taky moc nelíbilo, kdyby ti mohl kdokoliv cokoliv uložit na tvůj hosting :). Použij relativní adresování.
kuba_kuba
Profil
move_uploaded_file($_FILES["foto"]["tmp_name"], "http://www.domena1.cz/obrazky/$name");


tohle funguje jen sem tam dopsal celou adresu to s tim nesouvisi
kuba_kuba
Profil
vejs sem napsal cely ten script a psal sem ze se to uklada tam kde ten script je

move_uploaded_file($_FILES["foto"]["tmp_name"], "../obrazky/$name");
kuba_kuba
Profil
ale proc to copy z toho mista nic nenacte kdyz tam ten soubor je
Alphard
Profil
máš tady slušný monolog :-)
vrátím se k původnímu dotazu
1. obrázek pomocí funkce move_uploaded_file() uložíš na prvním serveru
2. obrázek z nového umístění na prvním serveru nakopíruješ pomocí ftp funkcí na druhý server (tedy ne pomocí move_uploaded_file(), ani copy(); na druhý server se musíš nejdříve přihlásit, pak kopírovat; informace o ftp funkcích najdeš v manuálu)
kuba_kuba
Profil
aha mam pocit ze sem neco takoveho kdysi delal to mne nenapadlo musim to nekde vykopat dik za napovedu
kuba_kuba
Profil
<?php
// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$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
$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);
?>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: