Upload файла через линк с помощью javascript

alexblade

Новичок
<a href="" id="fileupload-button">Добавить фотографию</a>
uses the follow event
Код:
return function(e) {
return e.preventDefault(), t.openFileUploadDialog()
}
and this tag
<input id="fileupload-file-input" name="file" accept="image/gif, image/jpeg, image/png" style="position: absolute; top: -10000px" multiple="" type="file">
uses
Код:
return function(o) {
var n;
return n = o.currentTarget.files, t.each(n, function(t, o) {
return e.options.remaining > 0 ? e._upload(n.item(o)) : void 0
}), e.options.nodes.fileInput.val("")
}
кто может подсказать что/как надо написать (в прототайпе я ноль. яваскрипт начальный уровень)
чтобы запустив скрипт на исполнение
файл из инпут поля залился на сервер ?

запускаю скрипт на исполнение из селениума
 

alexblade

Новичок
вроде и курсы селениум есть и спецы а ответить никто не может ? :(
 

WMix

герр M:)ller
Партнер клуба
я не знаю что добавить,
я понимаю что ты event хочешь отловить и протестить callback, причем тут селениум понять не могу. из этих обрывков понять что-то сложно, да и ты js как я понял не знаешь.
 

alexblade

Новичок
@WMix, если вы готовы помочь, то чтоб чтото понять нужно прочитать вопрос и посмотреть скрипт. тогда вы для себя уясните как там происходит процесс аплоада и сможете обьяснить мне.

я не отловить хочу а просто залить фотку на сервер из инпут поля.... залить на сервер который указан в скрипте и методом который описан в скрепте

я понимаю
e._upload(n.item(o))
аплоад происходит тут. вот как мне вызвать этот _upload с файлом из инпут поля ?
 

WMix

герр M:)ller
Партнер клуба
разве важен процесс загрузки? важнее проверить callback который вызовется после, или как ты считаешь? нужно просто сэмулировать успешное завершение. если же нужно проверить сервер, то проще подсунуть чтото ему и проверить ответ. ну и 3е проверить что если выбранно чтото в форме, то оно будет отправленно, но для этого не нужно это отправлять
 

alexblade

Новичок
что значит важнее,
мне нужно залить фото на сервер. мне не нужен код который проверит всё и вся. если в том случае что "запрос" (или назовите как хотите) правильный но файл по каким то причинам не залился - меня это абсолютно не интересует.

Код:
o.prototype.bind = function () {
            return this.options.nodes.button.on('click.fileupload', function (t) {
                return function (e) {
                    return e.preventDefault(),
                    t.openFileUploadDialog()
                }
            }(this)),
            this.options.nodes.fileInput.on('change.fileupload', function (e) {
                return function (o) {
                    var n;
                    return n = o.currentTarget.files,
                    t.each(n, function (t, o) {
                        return e.options.remaining > 0 ? e._upload(n.item(o))  : void 0
                    }),
                    e.options.nodes.fileInput.val('')
                }
            }(this))
        },
Код:
 o.prototype._upload = function (t) {
            var o;
            if (t instanceof File) return o = new FormData,
            o.append('file', t),
            e.ajax({
                url: this.getUrl(),
                type: 'post',
                data: o,
                dataType: 'json',
                processData: !1,
                contentType: !1,
                beforeSend: function (t) {
                    return function () {
                        return t.options.on.beforeSend.apply(null, arguments)
                    }
                }(this),
                complete: function (t) {
                    return function () {
                        return t.options.on.complete.apply(null, arguments)
                    }
                }(this),
                error: function (t) {
                    return function (e) {
                        return t.options.on.error(e)
                    }
                }(this),
                success: function (t) {
                    return function (e, o, n) {
                        return e.success ? t.options.on.success.apply(null, arguments)  : t.options.on.error(n)
                    }
                }(this)
            })
        }
как мне вызвать (принудительно) _upload с моим файлом из инпута _upload("мой файл из инпута")
вот как мне это вызвать ?
просто в консоли набрать
_upload(document.getElementById("fileupload-file-input").value)
дает ReferenceError: _upload is not defined
 

alexblade

Новичок
не понял вопроса.

сразу после выбора фото, до отправки формы, уходит такой пост реквест
https://i.simpalsmedia.com/upload/?template=233c9bd641d470cb0331c2c951662fede403225c5f9faf5206cabfde8f58e8feeDviK8XVZ3RiU95wJ9OLdQLWiRP5ZG1ldBn9Yc2wcvVxvlE5U6qYqEzn3WU6bQhx8R/Cv046tzYZpIi9KNw0keOpppQr4//AZR6NADhwfDeeEy8+UyXZkVP11yaDiflf2VdrvFIlC3jmt4LzTMENEj/0DzKA60gZq5BDqT/svBk=AYUXy1EOsPH44M6IjTQ5dm69KetITgKRy+5KrTRkvAe/gNuvea2140sdf0sJkbjAPrROruwW0r3Ra+C5NWqDAymucPfs9DhulBR7Hd5TJn5BjI6WGIr//OEerLzTfht/itdE1/9dOtMG+9rzPOmIj8IIXEUrC8WegtWcY0TPNH4=BIgbdspde5v2QgVvLYP/mKGV3sW+jyNsXEVRM2Q75yU/Ydb7/xICDk1mh2X9hLowl584wi96FWt7J6IEkWsAaSzkGLM5GHgU/atIBX/4zuKMAUlcuUTfODcmLvtyIow8vo8tZ9nacYqkRKViHDxCQ4VgU727URXIjFVFFw6Gr3A=&base64=thumb
в теле которого передаваемый имадж
НО
послав принудительно такой реквест ни к чему не приводит. я уже писал выше, если внимательно читать.


как мне вызвать _upload?
просто в консоли набрать
_upload(document.getElementById("fileupload-file-input").value)
дает ReferenceError: _upload is not defined
 

WMix

герр M:)ller
Партнер клуба
а заголовки соблюдил? чтонить типа X-Requested-With
 

alexblade

Новичок
его нет в оригин запросе.

как мне вызвать _upload? или на кмне тригернуть событие change ? ...trigger("change") не проходит
 

Тугай

Новичок
чтоб файл загружался у формы должен быть атрибут enctype="multipart/form-data"

добавь: $('#js-add-form').attr( "enctype", "multipart/form-data" ).attr( "encoding", "multipart/form-data" )

encoding - нужен для IE браузеров.
 
Сверху