Fájl feltöltése a webhelyre

Fájl feltöltése a webhelyre. Az inputfile objektum használata.

Olvasóink számos kérésére úgy döntöttünk, hogy számos olyan cikket indítunk, amelyek segítenek abban, hogy megértsék, hogyan oldhatja meg ezeket vagy más problémákat saját maga által a Emberi Emulátor segítségével. És elkezdjük a fájl feltöltését a webhelyre.

Ez a következőképpen néz ki:

Fájl feltöltése a webhelyre

Fájl feltöltése a webhelyre

Vagy fel kell töltenünk a fájlt a fájlmegosztó szolgáltatásra, például a depositfiles.com-ra:

Fájl feltöltése a webhelyre

Vagy bármely más webhelyen, ahol a fájl letöltési mezőket használják

Példák fájl letöltési mezőkre a humanemulator.net-on

A fájl letöltése a html fájlba a címkén keresztül történik. A címke használatához a Human Emulatorban van egy bemeneti fájl. A fájl letöltési mezőinek kitöltéséhez használja a $ inputfile-> set_value_by_name és $ inputfile-> set_value_by_number parancsokat. A parancsokkal ellátott parancsfájlok megtalálhatók a "Tesztek \ DOM \ inputfile \ common" mappában található Gyorsindítás lapon.

Most írunk egy szkriptet az emarket.ua fórumon. Tehát menj Emberre az emarket.ua-nál. Ezután lépjen be az áruk hozzáadásának oldalára, és keresse meg azt a mezőt, amelybe fotókat szeretne felvenni. Ahelyett, hogy belépne a fájl elérési útjába, megjelenik egy gomb a "+ Hozzáadás" szöveggel. Miután rákattintott rá, egy rendszer párbeszédablakot nyitunk meg a "Válassza ki az emarket.ua használatával küldött fájlok kiválasztásához" parancsot. Különböző rendszerek esetén a párbeszédpanel különböző lehet.

Ezen párbeszédpanelek Human Emulátorban történő feldolgozásához speciális ablakfüggvény $ execute_open_file ($ szöveg, $ útvonal, $ btn_text, $ exactly = true, $ thread = false); Most a forgatókönyvben csak a gombra kell kattintanunk, és fel kell hívnunk a megjelenő párbeszédpanelt.

Ehhez jobb egérgombbal kattintsunk a gombbal a "+ Add" hozzáadásával. Válassza a "Click" menüpontot, a $ object-> click_in_by_name ("uploadButton") almenüt; Ez a sor jelenik meg a szkriptben.

Megjegyzés: Az objektumokkal való munka érdekében jobb, ha olyan függvényeket használunk, amelyek a név vagy id vagy az elem egy másik egyedi attribútuma szerint működnek, mivel ha ugyanazt a típusú elemet hozzáadjuk, a számok megváltozhatnak, és a szkript leáll. Újra be kell számolni a forgatókönyvet. Ha a webhely nem változik gyakran, akkor elvileg nincs mit aggódni, ha a webhely rendszeresen megváltozik, akkor gyorsan gumi.

Futtassa a szkriptet. Semmi sem történik. A click_in_by_name függvény paraméterei ($ név, $ x = -1, $ y = -1, $ frame = -1); Próbáljuk meg áthelyezni a gomb koordinátáit erre a funkcióra. A koordináták megszerzéséhez a $ object-> get_x_by_name és $ object-> get_y_by_name függvényeket használjuk a szkriptben, ez így fog kinézni:

Ha a gomb nem látható a böngészőben, akkor a rákattintás nem működik. Ezért, amikor egy Ember Emulátoron lévő elemre kattint, a program böngésző automatikusan átkapcsol ezen elemre, így láthatóvá válik. Ez megváltoztathatja az elem Y koordinátáját. Az elem azonban mindig a böngésző alján lesz, így az Y elemet a böngésző magasságához köthetjük. Ennek eredményeként a parancsfájl:

Futtassa a szkriptet. Megnyíltak egy fájl kiválasztására szolgáló párbeszédablak. Ehhez hozzá kell adni a párbeszédpanelt a $ window-> execute_open_file ($ szöveg, $ útvonal, $ btn_text, $ exactly = true, $ thread = false) függvény használatával. Sajnálatos módon nincs ilyen funkció leírása a humanemulator.net-on. Ezért leírjuk a függvénynek átadandó paramétereket: $ text a dialógus címe egészben vagy részben; $ útvonal egy vagy több kép elérési útja, ha néhány képet küldenek, akkor idézőjelben kell lenniük, és egy szóközt követően - "c: \\ picture1.jpg" "c: \\ picture2.jpg" "c: \\ kép3 .jpg "stb.; $ btn_text - a kattintandó gomb szövege, és ennek a szövegnek teljes mértékben meg kell egyeznie a gombablakban található szöveggel. Vagyis, ha rákattintunk altre, egy aláhúzott levelet látunk, majd a levél előtt van egy szimbólum . Így a mi esetünkben a gomb szövege Nyisd ki. $ pontosan - jelzi, hogy a párbeszédpanel teljes vagy részleges-e. Alapértelmezés szerint ez a paraméter igaz, vagyis a $ text paraméter szigorú megfeleltetése a párbeszéd fejlécére. $ thread - az utolsó paraméter megmondja, hogy ezt a függvényt külön threadben futtatják-e vagy sem. Mit jelent ez? A párbeszédek lehetnek modális és nem modálisak. A Modális párbeszédablak letiltja az alkalmazás összes többi ablakát, így a felhasználó nem tehet vele semmit, amíg bezárja a párbeszédablakot. A nem modális párbeszédablak több, mint egy normál ablak, mert a felhasználó hozzáférést biztosít az alkalmazás ablakainak többi részéhez. A modális vagy nem modális párbeszédpanel legegyszerűbb módja a megnyitása és a program bármelyik ablakának kinyitása, ha hangjelzés hallható, akkor ez egy modális párbeszédablak, ha átváltunk egy ablakra, akkor a párbeszéd nem modális. A modális párbeszédpanelen a szálparaméternek igaznak kell lennie, és az execute_open_file függvényt a fájlkiválasztó párbeszédablakot megnyitó elemre való kattintás előtt kell hívni. Nem modális párbeszédablak esetén a thread = false, és a függvény hívható a párbeszédablak megjelenése után.

Az emarket.ua, valamint a legtöbb kártyán a modális párbeszédet használják, vagyis blokkolják a program minden más ablakához való hozzáférést. Most a script lesz:

Készen áll. De ennek a módszernek hátrányai vannak. Ha egy szkriptet használ ezen kóddal többszálas helyzetben, előfordulhat, hogy egy parancsfájl egy másik szkript által megnyitott párbeszédablakba helyezi a fájlokat. Ha a fájlok ugyanazok, akkor nem ijesztő, de ha nem, akkor már nem jó. Természetesen írhatsz kódot, amely ellenőrzi, hogy jelenleg vagy ez a szkript feldolgozza-e ezt a párbeszédet, de jobb, ha a mezőt közvetlenül használjuk a set_value_by_ * függvényeken keresztül. A fájlok feltöltésének ilyen módon történő feldolgozása könnyebb és gyorsabb lesz. A program legújabb verzióiban ez a probléma megoldódott, és most minden példány a nyitott párbeszédablakkal működik.

A fórumon ez úgy oldhatja meg, hogy a "fotók feltöltése egyszerű formátumú" szöveggel linkre kattint. A hivatkozásra kattintva megjelennek a letöltött fájl elérési útjának elérési mezők. És ebben az esetben a script lesz:

A szkriptek írásának gyakorlatában vannak olyan esetek, amikor az $ inputfile-> set_value_by_name-et kétszer kell hívni, ellenkező esetben a mezőt nem töltjük ki. Vagy ha a mező formában van, akkor előfordulhat, hogy nem jeleníti meg a szöveget a webhelyen lévő mezőben, de az ezen az útvonalon elküldő űrlap továbbad. Rejtett elemeket is találhat , amelyben hozzáadja a java scripten keresztül megadott elérési utat, és megpróbálja hozzáfűzni a fájl elérési útját közvetlenül ehhez az elemhez, még akkor is, ha az nem látható az oldalon. Figyelnie kell arra is, hogy amikor hozzáfűzi a fájl elérési útját, akkor az útvonal formátumát tiszteletben kell tartani, vagyis az elérési útnak a lemezről kell indulnia, például: c: \\, különben a szöveget nem lehet beilleszteni a mezőbe.

Az alábbiakban példákat láthatunk a táblákkal és a fájlmegosztással való munkafájlokkal kapcsolatban, amelyekhez két képet kell letölteni a megadott mappából. Ebben az esetben mind a munkát a fájlkiválasztó párbeszédablakaiban, mind pedig a mezõ értékének megadásával megadhatja a fájl elérési útjának megadásához.

A script több fájl hozzáadása az emarket.ua

Script, hogy egynél több fájlt adj hozzá a ria.ua-hoz

Szkript több fájl hozzáadásához a depositfiles.com-ban

Példa egy fénykép feltöltésére az egyik lemezre a set_value_by_name függvény használatával

Az XHE 4.4.19 MT-ben írt szkriptek.