Съдържание
Уеб ресурсът е "точка" в мрежата от информация. Информацията, която се показва на него, обикновено е статично представена и посетителят я разглежда. Можете да предоставите връзка към документ или друг ресурс и посетителят ще изтегли файла с информацията или ще последва връзката.
Използват се прости инструменти за изпращане на информация към или получаване на информация от сървъра. Но тяхната интелигентна употреба и логика на използване не са толкова лесни, когато става въпрос за организиране на сигурна, стабилна и надеждна обработка на данни.
Изтегляне на файл
Има една проста идея: има качване и изтегляне. Първата е за изпращане на файла към сървъра, а втората - за получаването му. За да се постигне първото, информацията може просто да се покаже в браузъра, в поле на страницата или чрез предоставяне на връзка към информационен ресурс. За втората задача е достатъчно да се напише форма за качване на файлове и код за нейната обработка на сървъра.
![data-afp-place-status="waiting" Прости инструменти за качване](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_2.webp)
В този пример (1) - две опции за връзка (без използване на PHP) за качване на файлове от сървъра, (2) - форма за изпращане на файлове към сървъра. Тук използването на PHP е от съществено значение. Използва по-усъвършенствана логика за изтегляне от обичайната.
В общия случай е достатъчно да се запише горната форма в кода на страницата и да се предвиди обработка на масива $_FILES.
![Записване на качения файл](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_3.webp)
Проверката на името на файла (функцията scCheckFileName) не е задължително условие, но за сигурност и надеждност е препоръчително. Дефинирайте правила за на всеки изтеглен файл е ключът към надеждна работа Уеб ресурс и уважително отношение към посетителя.
Качване на логиката на сървъра
Хостингът не е същият като хостинг, но използването на руски букви и някои знаци в имената на файловете - е изпълнено с опасност. Той може да "запише" файл, но след това да не успее да го прочете или изтрие. За да избегнете двусмислие, най-добре е да преименувате файла и да го запишете с име, което всеки хостер ще приеме с готовност.
В този контекст, качване на файлове на сървъра: PHP + MySQL. Езикът се използва за качване на файл. Връзката между реалните и уникалните имена на файловете се задава чрез базата данни и се генерира автоматично. Най-простото решение, как да извличате истинското име на файла, неговият код MD5 е уникална последователност от 32 байта. Когато се извършва качване на файлове на сървъра, PHP се "активира" на сървъра чрез AJAX.
![Стартиране на PHP чрез AJAX](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_4.webp)
Тук функцията scfCheckFile() кодира истинското име на файла, генерира уникален код MD5 и стартира механизма за прехвърляне на данни чрез AJAX. В този момент сървърът всъщност не зарежда файла, а само проверява за съществуването му по уникален код. Ако не бъде намерен такъв файл, ще бъде генерирано ново име на файл и ще бъде поставен запис в таблицата.
Функцията scfGetFile() потвърждава, че файлът е зареден, и гарантира, че записът на файла е актуализиран.
Резултат: файлът е зареден, записът в таблицата е генериран. Качване на файлове на сървъра с PHP & AJAX с JavaScript - добро и надеждно решение.
Механизмът AJAX за изтегляне на файлове
Функцията initXML() инициира прехвърляне на данни чрез AJAX. Изпълнявайте PHP, JavaScript и AJAX за качване на файлове на сървъра с предложения код - безопасно и сигурно.
![Стартира AJAX](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_5.webp)
Получаване на отговор от сървъра чрез функцията WaitReplySC(). Ето кода за две ситуации: първо, трябва да проверите дали файлът съществува, и второ, трябва действително да изтеглите файла.
![Отговаряне на AJAX сървър](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_6.webp)
Вариантите на кодиране могат да бъдат различни, важното е, че бутонът за качване на файлове не е активен, докато не бъде избран и проверен от сървъра.
![Логика на качване](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_7.webp)
Сървърен код в PHP
Сървърът трябва да провери дали може да изтегли файла. Пречките пред качването се определят от конкретната задача, но винаги е важно да не се презаписва информацията, т.е. да се предвиди и блокира качването на сървъра в PHP многократно.
За да решите този проблем, най-добре е да създадете таблица в базата данни на MySQL и да маркирате в нея един ред за всеки изтеглен файл. Тук можете да съхранявате истинското име на файла, неговото разширение, датата, на която е бил качен, да проследявате всички операции, извършени върху него, и т.н.
![Код на сървъра за проверка на името на файла](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_8.webp)
Това е код за проверка на съществуването на даден файл по неговото уникално име. Функцията на обекта на базата данни $oBase NewViuq() дефинира уникално име за качения елемент и го поставя в съответствие с истинското име на файла.
![Код на сървъра за изтегляне на файл](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_9.webp)
Ако проверка на името е успешна, посетителят щраква върху бутона за изтегляне и механизмът AJAX инициира качването на файла на сървъра. PHP кодът коригира записите в таблицата на MySQL и извежда следния резултат:
![Резултат от изтеглянето на файла](https://cdn2.faqukr.com/fimg/logika-zagruzki-fajlov-na-server-php-javascript-i_10.webp)
Във файловата система се появи още един елемент и редът на таблицата на този файл беше завършен. Полето за статус (f_status) съдържа "N", т.е. все още не са извършени никакви операции с качения файл.
Комуникационна логика
Файловете *docx, *docx са широко разпространени.xlsx, *.pdf и архиви са довели до една не съвсем правилна концепция: HTML & PHP, който изтегля файлове от сървър, е връзка към тях. Това не означава непременно, че посетителят изтегля елемент. Често програмистът просто отваря файла в браузър, за да го види.
Много задачи включват промяна на информация в такива файлове като. Лицето, което администрира сайта, проверява набора от действителни файлове, изтегля ги, променя ги и ги изпраща обратно на сървъра. Тази логика води до значителен трафик, натоварва комуникационните канали и затруднява поддръжката и експлоатацията на уеб ресурса.
Разбира се, невъзможно е да се промени установената система на информационни отношения в дадена компания. Ако организацията на файловете е приоритетна, тя трябва да бъде оптимизирана. Ако има възможността да трансформирате файловете в данни и да работите директно с тях, тогава идеалният вариант би бил: качване, преобразуване в активна форма, която ви позволява да променяте съдържанието на нейните елементи. Когато даден файл трябва да бъде изтеглен от сървъра, той се преобразува в текущото си актуализирано състояние и се изпраща на потребителя.