I am having problem in fetching image from the server, here is my code import UIKit
class ViewController: UIViewController {
@IBOutlet weak var getImageOutlet: UIImageView!
let get_Image_URL = "http://172.16.1.22/UploadImage/displayImage.php"
override func viewDidLoad() {
super.viewDidLoad()
self.getImage()
// Do any additional setup after loading the view, typically from a nib.
}
func getImage(){
let session = URLSession(configuration: URLSessionConfiguration.default)
guard let url = URL(string: "http://172.16.1.22/UploadImage/displayImage.php") else { return }
var request = URLRequest(url: url)
request.httpMethod = "GET"
session.dataTask(with: request) { (data, response, error) in
if let error = error {
print("Something went wrong: \(error)")
}
if let imageData = data {
DispatchQueue.main.async {
self.getImageOutlet.image = UIImage(data: imageData)
}
}
}.resume()
}
}
how to fetch image from server with any other method my image is not displaying in my imageView can anyone help me with the problem ??
This is how my postman looks like when i execute it with the api link
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/harshilpatel@gmail.com_company-registration.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/shriyakshah@gmail.com_company-registration.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/johndoe@gmail.com_Image_Test.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/zara.larsson@gmail.com_Image_Test.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/_user-profile.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/ijk@gmail.com_user-profile.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/def@gmail.com_user-profile.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/mno@email.com_user-profile.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/Dhdnm_user-profile.jpg'
style='height:40%;width:40%;'/>
<img src='http://localhost/Book-My-BIM-API/Company-Registration-
API/v1/companyImages/abc@email.com_user-profile.jpg'
style='height:40%;width:40%;'/>{"message":"Image displayed
Successfully"}
My new Code with tableview :
import UIKit
class ImageTableViewController: UIViewController, UITableViewDataSource, UITableViewDelegate{
final let myURL = URL(string: "http://172.16.1.22/UploadImage/displayImage.php")
var imageArray = [ImageData]()
@IBOutlet weak var imageTableVieqw: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
self.imageTableVieqw.delegate = self
self.imageTableVieqw.dataSource = self
self.downloadImage()
// self.imageTableVieqw.tableFooterView = UIView()
// Do any additional setup after loading the view.
}
func downloadImage(){
guard let downloadURL = myURL else{ return }
URLSession.shared.dataTask(with: downloadURL) { (data1, response, error) in
print("Downloaded")
guard let data = data1, error == nil, response != nil else{
print("Something went wrong")
return
}
do {
let decoder = JSONDecoder()
let downloadedimagedata = try decoder.decode(Images.self, from: data)
print("ImageDATA=\(downloadedimagedata)")
// print("image***=\(downloadedimagedata.images[1].imageV)")
self.imageArray = downloadedimagedata.images
DispatchQueue.main.async {
self.imageTableVieqw.reloadData()
}
}
catch{
print("Catch wrong")
}
}.resume()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return imageArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "imageCell") as! ImageTableViewCell
if let imageURL = URL(string: imageArray[indexPath.row].company_logo)
{
DispatchQueue.global().async {
let data = try? Data(contentsOf: imageURL)
if let data = data{
let image = UIImage(data: data)
DispatchQueue.main.async {
cell.imageCell.image = image
}
}
}
}
return cell
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
How my new API looks like:
{
"logos": [
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/harshilpatel@gmail.com_company-registration.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/shriyakshah@gmail.com_company-registration.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/johndoe@gmail.com_Image_Test.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/zara.larsson@gmail.com_Image_Test.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/_user-profile.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/ijk@gmail.com_user-profile.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/def@gmail.com_user-profile.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/mno@email.com_user-profile.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/Dhdnm_user-profile.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/abc@email.com_user-profile.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/erp@email.com_user-profile.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/tuv@email.com_user-profile.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/rohansoni@gmail.com_Image_Test.jpg"
},
{
"company_logo": "http://172.16.1.22/Book-My-BIM-API/Company-Registration-API/v1/companyImages/qwe@email.com_user-profile.jpg"
}
]
}
My model creation code:
import Foundation
class Images: Codable {
let images: [ImageData]
init(images: [ImageData]) {
self.images = images
}
}
class ImageData: Codable {
let company_logo: String
init(company_logo: String) {
self.company_logo = company_logo
}
}