Autor Zpráva
luma64
Profil
Pozdravujem ! Je možné robiť upload súboru (csv) z lokálneho počítača kódom v php pre spracovanie vstupných dát v aplikácii ? Prípadne ako by sa to dalo urobiť odoslanie súboru na spracovanie pre aplikáciu v php ? Vďaka za info!
luma64
Profil
Zrejme je nutné modifikovať upload_tmp_dir v php na cestu odkiaľ sa budu robiť uploady..
anonym_
Profil *
luma64:
Upload souboru v PHP se děla už asi 20 téměř neměnným způsobem. Kde je problém?
Keeehi
Profil
luma64:
Trochu podrobněji nám popiš svůj případ.
1) Co je to za csv:
- odkud se vzalo
- jak je velké
- jak často se mění
- pokud se mění, jaká je přípustná prodleva mezi změnou a jeho odesláním
- cokoli co ti přijde relevantní
2) Coje to za php aplikaci?
- tvořil jsi to ty nebo je to něco hotového
- pokud je to nějaký hotový produkt, máš možnost a zkušenosti ho nějak upravit
- kde a jak to běží (free webhosting/webhosting/VPS/vlastní server) + poskytovatel
- cokoli co ti přijde relevantní
luma64
Profil
Odpovedám odzadu. Je to php aplikácia, ktorá beží na našom firemnom webe. Verzia php je 7.1 , databaza je MariaDb. Aplikáciu som tvoril ja. Na požiadanie užívateľa chcem pridať možnosť importovať csv súbor,(veľkosť cca 50 kB), ktorý obsahuje záznamy, ktoré sa importujú do konkrétnej dočasnej tabuľky. Tento proce nie termínovo je pravidelný. Delimiter medzi poliami je bodkočiarka. Takýto csv súbor by si užívateľ vyberal cez browser prípadne by mal stále definovanú cestu. Dočasná tabuľka sa vytvorí v kóde , potom sa do nej naimportuje csv, urobia sa ešte zmeny. Keď je všetko správne, užívateľ urobí export do hlavnej tabuľky a dočasná sa odstráni. Na lokálkom pc, kde mi beží Xampp je to v poriadku. Neviem však urobiť takýto export v ostrej prevádzke z aplikácie na web serveri. Ďakujem za odpoveď !
blaaablaaa
Profil
luma64:
PHP nemůže mít přístup k uživatelovu disku. Uživatel (skoro) vždy musí soubor vybrat a nahrát.
N71
Profil *
luma64:
Zkoušel jsi třeba Google? Je to věc, kterou PHP umí zhruba tak od svého vzniku a od vzniku formulářového pole typu "file". Funkce, kterou budeš potřebovat, se jmenuje move_uploaded_file.
luma64
Profil
Musí vybrať a nahrať súbor... Odkiaľ ? Musí byť umiestnený v ceste v php.ini , parameter upload_tmp_dir ?

Moja predstava:
Užívateľ mi pošle csv súbor. Ja ho na úrovni databázy naimportujem do dočasnej tabuľky. Potom si v aplikáciii dočasnú tabuľku užívateľ naimportuje a urobí export do hlavnej tabuľky. Toto je podľa mňa schodné riešenie, závislé však na mojej dohode s užívateľom.
blaaablaaa
Profil
luma64:
Pleteš tady více věcí dohromady - kde je problém? Proč by ti měl uživatel něco posílat? Proč to dávat do dočasné tabulky? Co myslíš tím na úrovni databáze?

Je to jednoduché - uživatel nahraje přes input file csv soubor, např. přes funkci fgetcsv soubor rozsekáš a buď uložíš do nějaké (je jedno jestli nějaké s "drafty" nebo už do té finální) tabulky nebo zobrazíš uživateli v nějakém formuláři (?) a po odeslání uložíš.
Keeehi
Profil
luma64:
Musí vybrať a nahrať súbor... Odkiaľ ?
Uživatel ho vybere u sebe v počítači a jeho prohlížeč ho odešle na váš firemní server.

Musí byť umiestnený v ceste v php.ini , parameter upload_tmp_dir ?
Ano, ale jak se tam dostane, to tě vůbec nemusí zajímat. Ono si ho tam PHP "vyrobí" samo, když uživatel odešle formulář s vybraným souborem. Tvoje práce je jen si přečíst obsah toho souboru. Jméno souboru najdeš v $_FILES['jmeno_inputu_ve_formulari']['tmp_name']
Andrej.B
Profil
luma64:
vy vlastne potrebujete vytvorit vlastny skript, ktory moze pouzivat iny user ako vy, pretoze vy to nahravate v nejakom PHPMYADMINE ci ADMINERI, ktory to za vas riesi, ale nechce dat pristup priamo do serveru niekomu inemu, pre istotu?
anonym_
Profil *
Andrej.B:
To není o jistotě přeci…? Přidávat cokoliv ručně do sql databaze je… hloupé, spatne, nestandardní.

Upload script je otázka 5 řádku kódu, už desítky let.
Andrej.B
Profil
preto pisem, ze pouziva asi PhpMyAdmin ci Adminera, co je vlastne vasich 5 riadkov kodu /ano, o cosi lepsiech 5 riadkov/, pretoze to predtym robil sam, ale je lepsie, ked si to uzivatel spravi, ked bude potrebovat, alebo on nebude moct. Nedavno som to tu riesil aj ja, ked som potreboval nieco riesit z CSV nestardatnom tvare.
Keeehi
Profil
Andrej.B:
Žádný uživatel by neměl mít přístup do databáze. Jednak je to pro něj víc práce. Ale o to zase až tak moc nejde. Hlavní je, že tím úplně stratíš kontrolu nad tím, co je v databázi uloženo. Když ti uživatel jen nahraje soubor a tvůj script ho automaticky zpracuje, může v průběhu kontrolovat, že neobsahuje žádné blbosti a pokud ano, tak to do databáze vůbec neuložit.
luma64
Profil
Ďakujem za rady ! Nenahratie do adresára bolo spôsobené atribútmi foldra na serveri kam sa mal urobiť upload súboru csv .

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:

0