1

Я пытаюсь создать страницу JQuery Mobile, которая загружает видео в Google App Engine Blobstore вместе с соответствующим названием, описанием и т.д.многокопийной форма с входным файлом JQuery Mobile

Вот HTML из форма.

<form class="form-horizontal" action="{{ upload_url }}" method="POST" enctype="multipart/form-data" data-ajax="false"> 
    <input type="text" name="title" placeholder="Title" id="basic" value="" data-ajax="false" /> 
    <input type="text" name="description" placeholder="Description" id="basic" value="" data-ajax="false" /> 
    <input type="file" data-ajax="false" name="file" id="file"> 
    <input type="submit" value="Submit" name="sumbit" data-theme="b" data-ajax="false"> 
</form> 

HTML создан в Google App Engine с использованием этого кода.

class MobileUploadPage(webapp2.RequestHandler): 
    def get(self): 
    upload_url = blobstore.create_upload_url('/uploadvideo') 
    template_values = { 
     'upload_url': upload_url, 
    } 

    template = JINJA_ENVIRONMENT.get_template('mobileUpload.html') 
    self.response.write(template.render(template_values)) 

URL-адрес загрузки, который вы видите как действие формы, генерируется блобом с использованием следующего обработчика.

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): 
    def post(self): 
    upload = self.get_uploads()[0] 
    video = Videos(content=upload.key()) 
    video.title = self.request.get('title') 
    video.description = self.request.get('description') 
    video.ratingDown = 0 
    video.ratingUp = 0 
    video.creator = users.get_current_user().nickname() 
    uniuqeIDFound = False 
    newID = random.randint(1000,9999) 
    while(uniuqeIDFound == False): 
    vids = db.GqlQuery("SELECT * " 
         "FROM Videos ") 

    uniuqeIDFound = True 
    for v in vids: 
     if (v.videoID == newID): 
     newID = random.randint(1,10000) 
     uniuqeIDFound = False 
    video.videoID = newID 
    db.put(video) 
    self.redirect('/home') 

URL-адрес для загрузки создается правильно и отображается на странице. В версии браузера нашего сайта он отлично работает. Однако при попытке загрузить видео с iPhone через эту мобильную страницу JQM в blobstore форма не отправляется.

В документации JQM говорится, что многоформатный ввод формы с файлом не работает с AJAX, поэтому вы должны добавить тег data-ajax = false в родительскую форму. Я сделал это, но, похоже, это не помогает.

Может ли кто-нибудь понять, почему?

+0

В соответствии с документами jQuery Mobile по [конфигурации по умолчанию] (http://demos.jquerymobile.com/1.0/docs/api/globalconfig.html), '$ .mobile.ajaxEnabled' по умолчанию соответствует' true' , Этот параметр как 'true' перехватывает представления форм и вместо этого отправляет XML-HTTP-запросы. Вы повторили эту настройку '$ .mobile.ajaxEnabled' на' false', как предложил Jay @? Кроме того, вы можете также включить то, что происходит в [Safari's Web Inspector for iPhone] (http://webdesign.tutsplus.com/articles/quick-tip-using-web-inspector-to-debug-mobile-safari--webdesign -8787) и связанный журнал, если на самом деле отправлен запрос формы? – Nicholas

ответ