私は、ユーザーがフォトアルバムから画像を選択してAPIにアップロードし、データを取り戻すようにしています。問題は、これがiPhoneから画像をアップロードするのが正しいかどうかわかりません。イメージピッカーを使用してURLをイメージの文字列として取得し、処理のためにPOSTする方法を教えてください。
私は画像のURLをAPIにアップロードしようとしていました。 URLから文字列を取得しようとしていますが、取得しようとするとUTFを特定できないというエラーが表示されます。私はutf16を使用しますが、それは私に、何百文字もの長さの奇妙なテキスト文字を含む文字列を与えます。
public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {
let pickedImageURL = info[UIImagePickerControllerImageURL] as! URL
let pickedImageStr = try! String(contentsOf: pickedImageURL, encoding: String.Encoding.utf16)
ImageAPI.call(with: pickedImageStr)
dismiss(animated: true)
}
奇妙なことは、UTFパラメータをまったく使用しないと、Xcode端末が正確なパスを文字列として教えてくれることです。それは私に次のエラーを与える:
Error Domain=NSCocoaErrorDomain Code=264 "The file “E4DF0E72-1E7E-45FA-A5A2-A03850EC182D.jpeg” couldn’t be opened because the text encoding of its contents can’t be determined." UserInfo={NSFilePath=/private/var/mobile/Containers/Data/Application/351FF152-79C7-447E-9964-2C150368946D/tmp/E4DF0E72-1E7E-45FA-A5A2-A03850EC182D.jpeg}
私は文字列としてURLを取得しようとすると、どのように来る、それは動作しないと奇妙な記号の束と長い私の文字の文字列の数百を与えます?
端末にあるファイルの場所をコピーして貼り付けただけでは、ファイルが存在しないというエラーが表示されます。この
public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {
let pickedImageURL = info[UIImagePickerControllerImageURL] as! URL
let pickedImageStr = pickedImageURL.description
ImageAPI.call(with: pickedImageStr)
dismiss(animated: true)
}
文字列(contentsOf:URL)