Jde uložit pomocí jQuery/JS/Ajax soubor na svůj server?

Kolemjdoucí

Dobrý den všem,
chtěl bych se zeptat na následující řešení
- v prohlížeči pomocí jQuery načtu externí soubor
- jeho obsah uložím do <textarea></textarea>
- opravím potřebné změny
a teď potřebuji uložit změny zpět do původního souboru. Dočetl jsem se, že jQuery pracuje na straně uživatele a ne na straně serveru. Když ale pracuje na straně uživatele, jak to, že soubor ze serveru načtu? Můžu ho tedy i uložit zpět na server včetně mnou provedených změn? Děkuji.


Ohníč

Re:Jde uložit pomocí jQuery/JS/Ajax soubor na svůj server?
« Odpověď #1 kdy: 12. 12. 2017, 15:20:43 »
Podle toho, co a jak píšete soudím, že se v problematice příliš neorientujete. Napřed to chce nějaké základy. Zkuste Google, začít můžete třeba u dnes již poněkud zastaralého článku na webu jakpsatweb.cz - https://www.jakpsatweb.cz/programovani.html.

Stručně: jQuery je JavaScriptová knihovna pro usnadnění práce s JavaScriptem. Programy v JS (jQuery) běží na klientovi (čili v browseru).

Pro řešení vašeho problému existují dvě možnosti:
1. normální formulář: na serveru vytvoříte skript, který vygeneruje formulář, načtete soubor a dá jeho obsah jako hodnotu do vašeho prvku textarea. Pak musíte mít na serveru další skript, který formulář po odeslaání zpracuje, např. uloží na disk upravený obsah. jQuery na to nepotřebujete, ale spíš nějaký serverový jazyk - PHP, ASP, ASP.NET, node.js (to je zase JS, ale běžící na serveru), Ruby, Perl...
2. použít AJAX (to si nechte, až budete zkušenější): Zde se vám hodí jQuery. Ale i pro AJAX musíte mít podporu na serveru (tedy pokud nechcete používat čistě jen metody HTTP (GET/PUT)) - musíte mít na serveru skript, který vám dodá obsah do browseru, a další skript, který obsah zase uloží.

A nad tím vším visí různá bezpečností rizika, se kterými je třeba se nějak popasovat.
Čili nebude to tak jednoduché.

BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Jde uložit pomocí jQuery/JS/Ajax soubor na svůj server?
« Odpověď #2 kdy: 12. 12. 2017, 16:47:19 »
Bez spolupráce serveru to nejde.

Problém je v tom, že ty si nenačítáš "soubor", ale jen "stránku". Že je to soubor, je jen tvoje zjednodušení.

Když načteš stránku (metoda GET), tak (opět zjednodušení) je to jen pro čtení. Aby si to změnil, musíš serveru říct, že má něco změnit (metoda POST), takže například na tu adresu stránky poslat formulářem, nebo v tvém případě jQuery.ajax-em data, a server ti tuto změnu musí provést.

Opravdu platí, že jQuery ti na serveru nic neudělá.

Kolemjdoucí

Re:Jde uložit pomocí jQuery/JS/Ajax soubor na svůj server?
« Odpověď #3 kdy: 12. 12. 2017, 18:14:58 »
Děkuji za informace, a to si jako můžu chodit po webu a tak jednoduše si stahovat odkudkoliv - jakékoliv zdrojové soubory?

ByCzech

  • *****
  • 1 861
    • Zobrazit profil
    • E-mail
Re:Jde uložit pomocí jQuery/JS/Ajax soubor na svůj server?
« Odpověď #4 kdy: 12. 12. 2017, 18:34:00 »
Děkuji za informace, a to si jako můžu chodit po webu a tak jednoduše si stahovat odkudkoliv - jakékoliv zdrojové soubory?

Vím, že se vám to nemusí líbit, ale tahle rada:

Podle toho, co a jak píšete soudím, že se v problematice příliš neorientujete. Napřed to chce nějaké základy. Zkuste Google, začít můžete třeba u dnes již poněkud zastaralého článku na webu jakpsatweb.cz - https://www.jakpsatweb.cz/programovani.html.

...je pro vaše zorientování se v problematice a ve vašich otázkách to nejlepší.


BoneFlute

  • *****
  • 1 983
    • Zobrazit profil
Re:Jde uložit pomocí jQuery/JS/Ajax soubor na svůj server?
« Odpověď #5 kdy: 12. 12. 2017, 21:13:55 »
a to si jako můžu chodit po webu a tak jednoduše si stahovat odkudkoliv - jakékoliv zdrojové soubory?
Psal jsem, že o žádné soubory se nejedná.
Zdrojové soubory si nikdo stahovat nemůže.
Obsah stránek ano, ten si může kdokoliv bez omezení stáhnout (nedáš-li tomu nějaké auth omezení).

MarSik

Re:Jde uložit pomocí jQuery/JS/Ajax soubor na svůj server?
« Odpověď #6 kdy: 13. 12. 2017, 11:40:50 »
Stahovat můžete cokoliv co Vám server dovolí. Ale nedostáváte soubor, dostáváte obecně data. V nejjednodušším případě odpovídají nějakému souboru (statické html, obrázek), ale nemusí, protože server je klidně může pozměnit, poslat po kouskách nebo Vás třeba přesměrovat jinam.

Obsah stránek jsou také zdrojová data (Chrome vám je i ochotně ukáže - pravé tlačítko / View page source)...  To jak pak interpretujete výsledek je nepodstatné, pořád jsou to ta samá data (zdroják HTML vs. vykreslené HTML, obrázek na disk vs. obrázek na obrazovku..).

Zdrojové soubory serverových skriptů nejsou vystavené (nemají URL), takže je nestáhnete. A že je server nějak používá pro výpočet toho co Vám pošle? To Vás obvykle nemusí jako klienta vůbec zajímat, protože nemáte jak do toho procesu vstoupit.

Co se uploadu dat týče, tak buď textarea a skript na serveru, nebo multipart/form-data, input[type=file] a skript na serveru, nebo třeba podpora WEBDAV na serveru. Bez spolupráce serveru se každopádně neobejdete.