Một ứng dụng web html5 dành cho safari di động để tải lên hình ảnh từ ứng dụng Photos.app?


93

Có thể viết một ứng dụng web HTML5 được thiết kế cho các thiết bị iOS (iPad, iPhone, iPod Touch) có thể cho phép người dùng tải lên hình ảnh từ hệ thống tệp không?

Hãy tưởng tượng tải một ảnh mới lên ảnh đại diện twitter của bạn thông qua một ứng dụng web.

Câu trả lời:


98

CẬP NHẬT: iOs 6 Safari sẽ hỗ trợ tải lên video và hình ảnh từ Thư viện ảnh.

====

Tôi ghét từ này, nhưng, nó là không thể (cho đến nay). Đây là lý do:

1) Safari di động không hỗ trợ tải lên bất cứ điều gì.

2) Safari di động không thể truy cập các thành phần của ios (thực sự thì có thể, nhưng chỉ thông qua phonegap )


7
Bạn nói đúng, đó là một từ đáng ghét! Nghiên cứu của tôi cũng cho thấy điều tương tự và tôi không thể sống với nó nên đã hỏi ở đây trên SO. Cảm ơn vì câu trả lời.
Abhic

2
Điều tôi không hiểu là tại sao apple không cho phép lộ thư mục hình ảnh / video hơn là sợ lộ toàn bộ hệ thống.
fasih.rana

1
Bất kỳ liên kết nào đến tài liệu của iOS Safari để tham khảo cách tải lên hình ảnh trong iOS ?? Cảm ơn!
detj

Ah! Nó tự động thực hiện. Không phức tạp :)
detj

Bạn có thể vui lòng đăng một số mã để tải lên tệp trong trình duyệt Safari của ios bằng HTML 5 được không?
Karthick

28

một cách khác để tiếp cận vấn đề này là cung cấp cho người dùng một địa chỉ email riêng mà họ có thể gửi ảnh của họ qua email để tải lên tự động (ví dụ: photos+abc123@yoursite.com).

Thêm một chút công việc để thiết lập, nhưng sẽ mang lại trải nghiệm nhất quán cho người dùng trên tất cả các thiết bị (và người dùng không sử dụng thiết bị di động cũng có thể thấy thuận tiện).


Tôi tự hỏi làm thế nào điều này có thể được thực hiện, ý tôi là, người dùng gửi email có tệp đính kèm, ảnh hoặc video, làm thế nào tôi có thể trích xuất thông tin đó và lưu nó vào DB và đăng thông tin tương đối vào đúng nơi, ảnh vào thư mục images và thư mục video to videos ... phải có một tập lệnh mới có thể làm được điều đó ... hoặc thứ gì đó tương tự ..
Tanker

@Tanker vâng, ứng dụng của bạn sẽ phải truy xuất email định kỳ, lấy tệp đính kèm và lưu các thay đổi. Tôi đã sử dụng thư viện email ChilKat cho việc này trong quá khứ, mặc dù tôi sẽ cảnh báo bạn rằng nó không phải lúc nào cũng biên dịch tốt (đối với tôi -ymmv) giữa 32/64 bit.
brichins

9

Tôi thích giải pháp picup tại http://picupapp.com


một hướng dẫn cho điều đó . Một vấn đề với Picup là nó tải hình ảnh lên máy chủ của bên thứ 3 (imgur.com), điều này có thể tạo ra nhiều vấn đề về cấp phép / quyền riêng tư. Điều khoản dịch vụ của Imgur về cơ bản nói rằng họ sở hữu hình ảnh và bạn không thể sử dụng nó cho mục đích thương mại.
Ian Dunn

2
@Ian Dunn: Picup có thể được định cấu hình để tải hình ảnh lên bất kỳ URL nào bạn thích. Imgur chỉ là mặc định.
geon

8

Tôi tìm thấy một công việc chấp nhận được xung quanh cho điều này. Thêm liên kết mailTo trên trang với các hướng dẫn được xác định trước cho người dùng biết cách sao chép, dán hình ảnh từ thư viện ảnh của họ vào email. Sau đó, viết một công việc / tập lệnh lắng nghe hộp thư đến đó cho các email đến, tách hình ảnh và xử lý cho phù hợp.

Nó không hoàn hảo, nhưng họ nhấp vào liên kết từ safari và sau đó chỉ cần vào ảnh, sao chép và quay lại ứng dụng của bạn. Sau khi thử nó trên điện thoại của tôi, nó còn hơn cả một công việc có thể chấp nhận được cho phép tôi tiến lên phía trước mà không cần viết Ứng dụng.

    <div data-role="collapsible" data-collapsed="true" id="uploadPicContainer" data-theme="d">
    <h3>{l t='Upload Picture'}</h3>
    <a href="mailto:fotos@opina.com?subject={l t='My pictures of'} {$var_biz.bizname}[{$var_biz.id}]!&body={l t='To upload a picture go to your Camera Roll and copy paste an image to this area in the email.  We will apply your picture after review!'}">{l t='Click here to upload pictures of'} {$var_biz.bizname}</a>
</div>

Nó dễ chấp nhận hơn đối với bạn vì bạn biết những hạn chế - Tôi tò mò muốn xem phản hồi của những người không phải nhà phát triển phản hồi với một ứng dụng như thế này. Đó là một cách thú vị để thực hiện nó và một cách dựa trên một phương pháp khác mà người dùng đã quen thuộc - nó cũng có thể hiệu quả với điều gì đó mà tôi đang cố gắng làm.
Angelo R.

Vâng. đó là một ý tưởng gọn gàng. Phải có một tập lệnh sẽ phân tích cú pháp các tệp đính kèm. Zend Framework có một số thành phần tốt cho điều đó.
Svetoslav Marinov

6

Bạn sẽ có thể tải ảnh lên bằng safari trong iOS 6 trở đi. Mặc dù các giải pháp trên vẫn cần thiết cho iOS 5 trở xuống.


2
bạn có hướng dẫn nào về cách làm điều đó trên iOS 6 không?
Wim Deblauwe


2

Safari trên iOS 6.0 là ứng dụng đầu tiên bổ sung hỗ trợ <input type="file">bằng cách cho phép bạn:

  • quay video hoặc chụp ảnh mới
  • chọn một video hoặc ảnh từ thư viện

Đây là giao diện của nó trên iOS10:

Đầu vào tệp iOS 10 không có bộ lọc

iOS9 giới thiệu iCloud Drive và các tùy chọn khác bao gồm Dropbox . iOS 6 đến 8 chỉ có hai tùy chọn đầu tiên.

Bạn có thể giới hạn các loại tệp chỉ ảnh bằng cách sử dụng accept="image/*"thuộc tính:

<input type="file" accept="image/*" > sẽ giới hạn các tùy chọn chỉ cho ảnh:

Đầu vào tệp iOS 10 cho ảnh

Về phía Android, Android 2.2+ là ứng dụng đầu tiên hỗ trợ mã trên.

Tuyên bố từ chối trách nhiệm: hình ảnh lịch sự của Pipe xử lý quay video nơi tôi là CTO


1

Một ý tưởng mà tôi vừa nghĩ ra là có một hộp văn bản mà người dùng có thể dán url vào, cho phép người dùng sử dụng hộp kéo thả hoặc một ứng dụng tương tự và sao chép url công khai của tệp hộp kéo thả. Sau đó, máy chủ sẽ có thể tải xuống từ máy chủ dropbox.

Tôi cần hỗ trợ các loại tệp khác ngoài hình ảnh để có vẻ như picupapp sẽ không hoạt động với tôi.


0

Nếu bạn vẫn đang sử dụng iOS5, vui lòng xem xét sử dụng iCab Mobile. Có nó cho ipad của tôi và (ít nhất là đối với tôi) tải lên tệp hoạt động tốt.

Trân trọng, Piotr


0

Chỉ dành cho iOS> = 6

<input type="file" accept="image/*" capture>

"capture" không thay đổi bất cứ điều gì với iOS nhưng nó vẫn hữu ích cho các thiết bị khác (dường như là Android, xem nhận xét).


capture="camera"(string) đã được thay thế bằng capture="capture"trong Đề xuất Ứng viên W3C. Trong cả hai trường hợp, nó chỉ hoạt động trên Android.
Octavian Naicu

@OctavianNaicu có lý. Tôi đã chỉnh sửa câu trả lời. Cảm ơn vì thông tin
Erdal G.
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.