先介绍一下背景啊,本人是一名从业2.5年+的IOS开发工程师。平时喜欢搞点小研究,技术上虽然跟大牛们差很远,但是个人觉得写点对别人有帮助的文章也不是什么坏事。这篇文章主要是为了一些不了解图片上传的过程的同学们准备的,之前好几个群友都提到了使用AFNetWorking上传图片不了解是什么过程。可能都是从网上Copy过来的代码,所以不是很清楚流程才导致的不知道该在哪里写什么参数。设置什么参数。下面我就跟大家分享一下。使用Web和AFNetWorking的上传过程。两个前台的代码加上一个PHP后台的代码我想大家会足够明白图片的上传流程了。这就是我举两个例子的原因了,对比着看或许更加事半功倍吧。
首先先从Web上传图片开始说起。贴段代码解释一下吧。
<html><head><meta charset="UTF-8"> <title> Upload Picture. </title></head><body><form action="handle.php" name="form" method="post" enctype="multipart/form-data"> <input type="file" name="fileData" /> <input type="submit" name="submit" value="上传" /></form></body></html>
分析一下上面的代码,其实没有什么可以说的懂html的都知道。是一个提交表单。要点:method=”post” :设置HTTP请求方式为POST请求enctype=”multipart/form-data” :这个是一个需要了解的地方multipart/form-data这个值用于支持向服务器发送二进制数据。这个大家是不是看着感觉似曾相识的感觉呢? AFMultipartFormData协议,这个肯定不陌生了吧。其实AFMultipartFormData协议的作用就等价于multipart/form-data这个了。刚好提到AFMultipartFormData这个协议,那么下面我贴上另外的AFNetWorking上传图片的代码吧。大家都知道,由于IOS不能像Web那样通过提交表单来上传数据,那么我们只能通过HTTP请求来提交数据。代码如下
UIImage *image = [UIImage imageNamed:@"测试图片.jpg"]; NSData *data = UIImageJPEGRepresentation(image, 1.0); AFHTTPSessionManager *session = [AFHTTPSessionManager manager]; [session POST:@"图片上传接口" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> _Nonnull formData){ [formData appendPartWithFileData :data name:@"fileData" fileName:@"图片名称.jpg" mimeType:@"image/jpeg"]; } progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nonnull responseObject){ } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error){ }];
到这里大家一定会发现有点神似并且会有一个共同的地方。就是共同都用到了fileData这个参数。没有错,代码先做了个POST请求,然后使用此协议起到了类似Web提交表单中图片的作用。POST:parameters:constructingBodyWithBlock: 此方法为AFNetWorking中自带方法。百度查一下即可。
前面我介绍了那么多前段的操作,下面我们来看下服务器端怎么来接收图片。以PHP后台为例子了。简单的写了个PHP上传图片的后台。
<?php header('Content-Type:text/json; charset=utf-8'); $file = $_FILES['fileData']; $name = $file['name']; $type = strtolower(substr($name,strrpos($name,'.')+1)); $allow_type = array('jpg','jpeg','gif','png'); if(!in_array($type, $allow_type)){ return ; } if(!is_uploaded_file($file['tmp_name'])){ return ; } $upload_path = "./"; if(move_uploaded_file($file['tmp_name'],$upload_path.$file['name'])){ $array = array( 'code' => 'success' ); echo json_encode($array); }else{ $array = array( 'code' => 'fail' ); echo json_encode($array); }?>
大家是不是又发现了什么?$_FILES[‘fileData’]没错,就是这个了用来获取表单中name为fileData的二进制图片数据。获取到这张图片数据之后将图片保存至服务器。至此为图片上传至服务器的全部流程了。
可能写的不是那么好,不是那么有价值。但是个人感觉还是很实用,希望不喜勿喷。

HTML adalah asas struktur laman web bangunan. 1. HTML mentakrifkan struktur kandungan dan semantik, dan penggunaan, dan sebagainya. 2. Menyediakan penanda semantik, seperti, dan sebagainya, untuk meningkatkan kesan SEO. 3. Untuk merealisasikan interaksi pengguna melalui tag, perhatikan pengesahan bentuk. 4. Gunakan elemen lanjutan seperti, digabungkan dengan JavaScript untuk mencapai kesan dinamik. 5. Kesilapan biasa termasuk label yang tidak terkawal dan nilai atribut yang tidak disebutkan, dan alat pengesahan diperlukan. 6. Strategi pengoptimuman termasuk mengurangkan permintaan HTTP, memampatkan HTML, menggunakan tag semantik, dll.

HTML adalah bahasa yang digunakan untuk membina laman web, menentukan struktur laman web dan kandungan melalui tag dan atribut. 1) HTML menganjurkan struktur dokumen melalui tag, seperti,. 2) Penyemak imbas menghancurkan HTML untuk membina DOM dan menjadikan laman web. 3) Ciri -ciri baru HTML5, seperti, meningkatkan fungsi multimedia. 4) Kesilapan biasa termasuk label yang tidak terkawal dan nilai atribut yang tidak disebutkan. 5) Cadangan pengoptimuman termasuk menggunakan tag semantik dan mengurangkan saiz fail.

WebDevelopmentReliesOnhtml, CSS, andjavascript: 1) HtmlStructuresContent, 2) CSSStylesit, dan3) JavaScriptaddsInteractivity, Formingthebasisofmodernwebexperiences.

Peranan HTML adalah untuk menentukan struktur dan kandungan laman web melalui tag dan atribut. 1. HTML menganjurkan kandungan melalui tag seperti, menjadikannya mudah dibaca dan difahami. 2. Gunakan tag semantik seperti, dan lain -lain untuk meningkatkan kebolehcapaian dan SEO. 3. Mengoptimumkan kod HTML boleh meningkatkan kelajuan pemuatan laman web dan pengalaman pengguna.

Htmlisaspecifictypeofcodefocusedonstructuringwebcontent, manakala "kod" secara meluas ini

HTML, CSS dan JavaScript adalah tiga tiang pembangunan web. 1. HTML mentakrifkan struktur laman web dan menggunakan tag seperti, dan sebagainya. 2. CSS mengawal gaya laman web, menggunakan pemilih dan atribut seperti warna, saiz font, dan lain-lain.

HTML mentakrifkan struktur web, CSS bertanggungjawab untuk gaya dan susun atur, dan JavaScript memberikan interaksi dinamik. Ketiga melaksanakan tugas mereka dalam pembangunan web dan bersama -sama membina laman web yang berwarna -warni.

HTML sesuai untuk pemula kerana mudah dan mudah dipelajari dan dapat melihat hasilnya dengan cepat. 1) Keluk pembelajaran HTML adalah lancar dan mudah dimulakan. 2) Hanya menguasai tag asas untuk mula membuat laman web. 3) Fleksibiliti yang tinggi dan boleh digunakan dalam kombinasi dengan CSS dan JavaScript. 4) Sumber pembelajaran yang kaya dan alat moden menyokong proses pembelajaran.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

SublimeText3 Linux versi baharu
SublimeText3 Linux versi terkini

Dreamweaver Mac版
Alat pembangunan web visual

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft