$filename / Nemeniť – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

$filename / Nemeniť – PHP – Fórum – Programujte.com$filename / Nemeniť – PHP – Fórum – Programujte.com

 

Benecore0
Newbie
7. 7. 2011   #1
-
0
-

Zdar borci

Potreboval by som poradiť s PHP. Mám napísanú aplikáciu pre OS Symbian v pythone a je tam upload obrázkov. Pri vytvorení screenshotu má screen určitý názov a ja potrebujem aby po uploadnutí na serve ten názov ostal rovnaký.

Tu je PHP kód, čo tam mám zmeniť aby nemenil názov uploadovaného súboru:

<?php

// read the incoming image data handed over from Python S60 phone
$data = file_get_contents('php://input');

// create a filename based om time and a random number
$timestamp = time();
$random_id = rand(0, 10);
$filename = 'screen_'.$timestamp .'.jpg';

// write the file to the server into the directory named beijing
$filepathname = "image/$filename";
$handle = fopen($filepathname, 'wb');
fputs($handle, $data, strlen($data));
fclose($handle);

// return the filename
echo " ".$filename;
?>

´Dakujem za pomoc

Nahlásit jako SPAM
IP: 95.102.201.–
DevPDA - Software development
http://devpda.net
z_moravec
~ Redaktor
+3
Posthunter
7. 7. 2011   #2
-
0
-

   

$filename = $_FILES["file"]["name"];
Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Benecore0
Newbie
7. 7. 2011   #3
-
0
-

Tak som to zmenil, ale teraz mi subor neulozi. Vypisuje mi chybu

Warning
fclose():

supplied argument is not a valid stream resource in "cesta ku skriptu .php' on line 18, 19 a 20.

Su to tieto riadky

$handle = fopen($filepathname, 'wb');

fputs($handle, $data, strlen($data));

fclose($handle);
Nahlásit jako SPAM
IP: 95.102.201.–
DevPDA - Software development
http://devpda.net
z_moravec
~ Redaktor
+3
Posthunter
7. 7. 2011   #4
-
0
-

Dej sem celý kód, hlavně tu část, kde se provádí upload souboru. V proměnné

$_FILES["file"]["name"] musíš místo file dát správný klíč.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Benecore0
Newbie
7. 7. 2011   #5
-
0
-

Toto je celý PHP kód. Myslíš ten python kód ktorý je v aplikácii?

Tu je:

    filename = 'e:\\logo1.png'
    picture = file(filename).read()
    ap_id = socket.select_access_point()  
    apo = socket.access_point(ap_id)  
    socket.set_default_access_point(apo) 
    conn = httplib.HTTPConnection("dir.devpda.net")
    conn.request("POST", "/upload.php", picture)
    print "upload started ..."
    e32.ao_yield()
    response = conn.getresponse()
    remote_file = response.read()
    conn.close()
    appuifw.note(u" " + remote_file, "info")
    print remote_file
Nahlásit jako SPAM
IP: 95.102.201.–
DevPDA - Software development
http://devpda.net
z_moravec
~ Redaktor
+3
Posthunter
7. 7. 2011   #6
-
0
-

Aha, tak to bude lehce složitější, pokud ten kód chápu dobře, tak nikde název souboru neposíláš. Takže budeš muset mimo obsahu souboru odelsat z té aplikace i jeho název. a ten pak vložit do proměnné $filename.

Nahlásit jako SPAM
IP: 83.240.110.–
Spát lze čtyři hodiny denně, spát déle je nemístný přepych.
Thomas Alva Edison
Curo
~ Šéfredaktor
+8
Hero
8. 7. 2011   #7
-
0
-

Pokud používáš tyto řádky:

// read the incoming image data handed over from Python S60 phone
$data = file_get_contents('php://input');

Pak znáš název souboru, protože jej dáváš do parametru f-ce file_get_contents.

// read the incoming image data handed over from Python S60 phone
$data = file_get_contents('muj_soubor.png');

$jmeno_souboru = 'muj_soubor.png';

// create a filename based om time and a random number
$timestamp = time();
$random_id = rand(0, 10);
$filename = $jmeno_souboru;
...
//dál už je kód stejný, jak jsi poslal
Nahlásit jako SPAM
IP: 109.164.4.–
Guitar Hero Master, Project führer & zdejší čaroděj.
Sleduj mě na twitteru – @lukaschury.
Benecore0
Newbie
8. 7. 2011   #8
-
0
-

Dík za odozvu. V aplikácii je nastavenie Nicku. Ten nick bude pridaný pred názov súboru a podľa toho aplikácia zistí ktoré obrázky uploadoval ten ktorý uživateľ. Preto potrebujem aby sa ten súbor ukladal na server s názvom aký je určený v aplikácii. Iný uživateľ iný názov.

Ak to pomôže tu je originál kód aj s python kódom.

http://mobilenin.com/pys60/ex_upload_image_to_url.htm

Ak sa to nevyrieši nevadí. Dám do aplikácii aby ukladala názov súboru ktorý uživateľ uploadoval respektíve názov ktorý sa uloží na server sa uloží aj v telefóne. Tekže potom aplikácia bude vedieť ktorý screen uploadoval daný uživateľ.

Dík za pomoc

Nahlásit jako SPAM
IP: 178.40.11.–
DevPDA - Software development
http://devpda.net
nervak0
Věrný člen
8. 7. 2011   #9
-
0
-

Nevím, proč to děláš takhle, ale budiž. Nejdřív se ta data musí na server nějak dostat, takže mu je musíš poslat. Nejjednodušeji jako parametry v URL.

Takže pokud máš třeba

nickname = 'pepik'
filename = 'e:\\logo1.png'

Tak to převedeš do formátu pro URL

reqnick = urllib.quote(nickname)
reqfile = urllib.quote(os.path.basename(filename))

A přidáš do dotazu

conn.request("POST", "/fileupload.php?nick=" + reqnick + "&file=" + reqfile, picture)

V PHP na serveru pak ty parametry budeš mít v $_GET a můžeš z nich sestavit název souboru.Akorát samozřejmě musíš pohlídat, aby si někdo nezapisoval co/kam se mu zamane. Místo toho strtr vymysli něco inteligentnějšího.

$nick = strtr($_GET['nick'], '/\\.:\0', '_____');
$file = strtr($_GET['file'], '/\\.:\0', '_____');
$filename = 'screen_'.$timestamp.'_'.$nick.'_'.$file;
Nahlásit jako SPAM
IP: 213.211.51.–
Benecore0
Newbie
8. 7. 2011   #10
-
0
-

#9 nervak
Móžno to nie je najlepšie riešenie, ale chcel som nejak označiť screeny aby užívateľ ľahšie našiel svoje na adrese kde ich aplikácia uploaduje. V pripade, že tam bude 100 a viac screenov tak vyhľadať ten ktorý chcem použiť "niekde ako odkaz" bude dosť ťažké. Možno by bolo lepšie aby ten PHP skript vytvoril zložku podľa nastaveného nicku a potom by mohol byť názov screenu akýkoľvek. V každom pripade ďakujem za pomoc vyskúšam to a potom dám vedieť.

Nahlásit jako SPAM
IP: 95.103.168.–
DevPDA - Software development
http://devpda.net
nervak0
Věrný člen
9. 7. 2011   #11
-
0
-

Ta první věta se týkala jen způsobu odesílání, není těžké udělat "normální" upload. To, že chceš odlišit jednotlivé uživatele je samozřejmě v pořádku.

Nahlásit jako SPAM
IP: 213.211.51.–
Benecore0
Newbie
21. 8. 2011   #12
-
0
-

Dík funguje to  

Chcem sa spýtať vedel by tento skript niekto pridať do Chevereto skriptu? Chcel by som aby obrázky uploadovalo cez Chevereto skript.

http://dir.devpda.net/…e/Upload.rar

Do súboru engine pridať upload pomocou mobilu.

Ďakujem

Nahlásit jako SPAM
IP: 95.102.163.–
DevPDA - Software development
http://devpda.net
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 8 hostů

Podobná vlákna

File/filename/uri/url — založil Flowy

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý