iOS 9-从现有库中选择照片时不提交Web表单



我正在一个web应用程序中创建一个需要上传图像文件的表单。

无论你是拍一张"新照片"还是从"现有库"中选择一个文件,这都应该有效。

我正在iOS 9.1上测试该表单,我可以让它发挥一半的作用。

如果我拍了一张新照片,那么它会完美地工作,并进入成功的屏幕。

如果我从现有的库中选择一张照片,那么它就不起作用。它看起来有点像在工作,但随后它只是重新加载同一页。数据从不提交到后端。

我使用的是iOS 8上使用的代码,如果我还记得的话,它工作正常。

这就是我所拥有的:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<form id="defaultForm" method="post" class="form-horizontal" action="/receipt-submit" enctype='multipart/form-data'>
  <div class="form-group receiptContainer">
    <div class='upload-photo' onclick="$('#receipt').click()">
      <image src='/img/camera-icon.png' class='img-responsive' alt='' />Upload Your Receipt</div>
    <div id="Ugly">
      <input type="file" name="receipt" id="receipt" accept='image/*' />
    </div>
  </div>
  <button type='submit' name="validateBtn" class="upload-photo submit" id="validateBtn">Submit</button>
</form>

我不得不对样式感兴趣,这就是为什么你会看到id="丑陋"的div。

我很想让这个按钮与新的和现有的图像一起工作,但我尝试的似乎都不起作用。

任何帮助或想法都将不胜感激。

提前感谢!

我遇到了一个类似的问题,自从IOS9问世以来,这个问题一直困扰着我的用户。我终于解决了这个问题。基本上,问题是SafariMobile从上传的.jpg媒体文件的文件名中删除了.jpg。屏幕截图和当前相机都是.pngs,它们是带扩展上传的,所以它们可以工作。这只是你用相机拍摄并提前保存到媒体卷上的图像,在上传时没有扩展。由于大多数服务器端后端系统都会检查扩展名,以确定该文件是否是映像,是否应该进行后处理,因此很可能在服务器端您收到了该文件,但由于没有扩展名,您立即将其丢弃。由于我无法在本地开发环境中使用真正的IOS设备进行测试,因此,在由实际的IOS设备(而不是模拟器)提交后,我会逐步完成服务器端代码,我也认为输入永远不会发布。

最新更新