Как загрузить файл изображения на сервер и в базу данных вместе со значениями переменных JavaScript?

0

У меня есть HTML- form для загрузки изображений и ответов на вопросы опроса. Я хочу сделать так, чтобы после выбора изображения содержимое формы менялось, чтобы стать первым вопросом, после чего я отвечаю, что содержимое становится вторым вопросом и т.д.

Сейчас у меня есть ответы, сохраненные в переменных JavaScript, но я не знаю, как отправить эти переменные и изображение на серверную базу данных.

Вот мой файл layout.erb, который содержит form. JavaScript в этом фрагменте предназначен только для предварительного просмотра загруженного изображения:

<form action="upload_image" method="post" enctype="multipart/form-data" accept-charset="utf-8">
<div class="form_item">
  <p class="question">
    <img id="upload_preview" style="width: 200px; height: 200px;" />
    <input id="upload_image" type="file" name="my_photo" onchange="PreviewImage();" />
    <script type="text/javascript">
        function PreviewImage() {
            var oFReader = new FileReader();
            oFReader.readAsDataURL(document.getElementById("upload_image").files[0]);

            oFReader.onload = function (oFREvent) {
                document.getElementById("upload_preview").src = oFREvent.target.result;
                // document.getElementById("upload_image").disabled = true
            }; // DONE: function (oFREvent)
        }; // DONE: function PreviewImage()
    </script>
  </p>
  <p class="question">Enter name here<input type="text" name="text_name" /></p>
  <button type="button" id="next_question">Next</button>
</div>
</form>

После того, как я p.question на следующую кнопку, содержимое p.question изменится на второй вопрос, который имеет варианты "A", "B", "C", "D". Каждый из них находится в <p> (например, <p class="answer">a</p>).

У моей серверной базы данных есть столбцы image_path, text_name и second_question. Второй элемент, text_name - это текст, который пользователь вводит в текст <input type="text" name="text_name"/>.

Как сделать так, чтобы пользователь мог отправить в базу данных строку, содержащую данные image_path, text_name и second_question?

Теги:
sinatra

1 ответ

0

Обычно вам необходимо передать данные файла через другой язык, который может записывать файлы на сервер, например, PHP. Для этого есть много готовых библиотек, нет необходимости изобретать велосипед.

Самый открытый и полезный, который я нашел, - это демо и его источник.

  • 0
    Это немного помогает, хотя я пытаюсь выяснить, как отправить изображение вместе с тем, что пользователь нажимает для text_name и second_question .
  • 0
    Я думаю, я не понимаю? Эта библиотека делает загрузить сам файл изображения на сервер. Затем вы используете адрес, по которому он был загружен, чтобы загрузить его на страницу, или манипулировать им каким-либо другим способом. Если вы хотите отправить другие параметры одновременно с изображением, вам, вероятно, потребуется немного изменить библиотеку загрузки или найти способ для нее вызвать функцию обратного вызова.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню