vbKoder
6.10.2017 - 20:14
Хочу сделать Drag&Drop загрузку файлов на форум. Не могу разобраться, можно ли вообще использовать скрипт newattachment.php для загрузки с помощью XMLHttpRequest?
Движок VBulletin 4.
Мне нужно отправить файл на загрузку из js и получить ответ от php-скрипта форума с id загруженного файла и другими данными, как это происходит при загрузке вручную.
Это вообще реально сделать или придется писать с нуля php-скрипт для загрузки?
Спасибо.
Игорь_Vasinsky
6.10.2017 - 20:18
т.е. JS файлы с клиента кидает на сервер? нативный XMLHttpRequest - кидается файлами?
или там flash ?, земля ему пухом
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vbKoder
6.10.2017 - 21:09
flash не используется.
За окно загрузчика отвечает файл newattachment.php и на него-же ссылается форма загрузки. Мне нужно использовать функции для загрузки файлов, без отображения окна и формы с кнопками.
Не нашел как прикрепить файл.
vbKoder
6.10.2017 - 21:17
Загрузил на файлообменник. Сорри, что вопрос не по js, но меня интересует, можно ли использовать функции загрузки этого скрипта из js?
http://dropmefiles.com/LbCG3
Игорь_Vasinsky
6.10.2017 - 23:20
js ничего понятия не имеет о файловой структуре. он живет в в браузере.
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
vbKoder
6.10.2017 - 23:40
Я в курсе.
Видимо, я неправильно выбрал раздел.
Меня интересует, позволяет ли код файла newattachment.php использовать его для загрузки файлов через XMLHttpRequest?
AllesKlar
6.10.2017 - 23:42
Цитата (Игорь_Vasinsky @ 6.10.2017 - 21:20) |
js ничего понятия не имеет о файловой структуре. он живет в в браузере. |
да нормально там все уже давно ;)
Он же драг и дропом хочет, а там ссылка blob-вская генерится
Как-то так
var dt = e.dataTransfer;
if (dt.items) {
for (var i = 0; i < dt.items.length; i++) {
if (dt.items[i].kind == "file") {
var f = dt.items[i].getAsFile();
this.uploadAsset(f, f.name);
}
}
} else {
}
}
uploadAsset(file, name) {
const xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
const formData = new FormData();
formData.append('file', file);
formData.append('name', name);
const httpMethod = "post";
const apiMethod = 'asset/upload';
const request = Registry.coreUrl + apiMethod;
xhr.open(httpMethod, request, true);
xhr.withCredentials = true;
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status == 200) {
let asset = {};
try {
let data = JSON.parse(xhr.responseText);
} catch (e) {
console.log(e.message);
console.log(xhr.responseText);
}
if (typeof data.assets != 'undefined') {
let currentAssets = self.state.assets;
currentAssets = currentAssets.concat(data.assets);
self.setState({assets: currentAssets});
Registry.assetsCount = currentAssets.length;
} else {
console.error("AssetStore::loadAssetList() error load assets list");
}
}
};
console.log("send request: " + request);
xhr.send(formData);
}
_____________
[продано копирайтерам]
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.