PHP側コードの周りにほぼ完全いくつかのparamsで6枚の画像をアップロードするためにあまりにも多くの時間を取る: - :任意により場合Alamofireは2メガバイト
func globalFuncUploadFile(withParams: [String:String], forURL: String, imageData: [String:Data], completionHandler: @escaping (JSON?, NSError?) ->()) {
// To create a Semaphore to Sync this asyc method
print(forURL)
let semaphore = DispatchSemaphore(value: 0)
Alamofire.upload(multipartFormData: { (MultipartFormData) in
print("\n\n\n\nFile is appending with URL")
for (key,data) in imageData{
print("\(key) is appending")
MultipartFormData.append(data.base64EncodedData(), withName: key, fileName: key, mimeType: "\(key)/JPEG)")
}
for (key,value) in withParams{
print("\(key) is appending")
MultipartFormData.append(value.data(using: .utf8)!, withName: key)
}
print("of size \(MultipartFormData.contentLength)")
}, to: forURL,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.uploadProgress(closure: { (Progress) in
print("Upload Progress: \(Progress.fractionCompleted)\t\(Progress.completedUnitCount)/\(Progress.totalUnitCount)")
})
upload.responseString { (value) in
//Show Alert in UI
switch value.result {
case .success(let valueJson):
print("Data uploaded \(valueJson)")
completionHandler(JSON(valueJson), nil)
break
case .failure(let internalError):
print("Data not uploaded -> \(internalError)")
completionHandler(nil, internalError as NSError?)
break
}
}
break
case .failure(let encodingError):
//Show Alert in UI
print("Data not uploaded -> \(encodingError)")
completionHandler(nil, encodingError as NSError?)
break
}
//Awaking Semaphore that session is complete
semaphore.signal()
}
)
// Waiting for the semaphore signal
_ = semaphore.wait(timeout: .distantFuture)
}
<?php
include('dbConnect.php');
if($_SERVER['REQUEST_METHOD']=='POST'){
//Getting values
$customer_email = $_POST['email'];
$age = $_POST['age'];
$city = $_POST['city'];
$gender = $_POST['gender'];
$issue_title = $_POST['issue_title'];
$issue_desc = $_POST['issue'];
$relation = $_POST['relation'];
$image1 = $_POST['image1'];
$image2 = $_POST['image2'];
$image3 = $_POST['image3'];
$image4 = $_POST['image4'];
$image5 = $_POST['image5'];
$today_date = date('Y-m-d H:i:s');
$case_id = rand(1,100000);
$path1 = null;
$path2 = null;
$path3 = null;
$path4 = null;
$path5 = null;
$path6 = null;
function checkfive()
{
global $image5,$path5;
if($image5=="No Image")
{
$id5 = "default";
$path5 = "images/$id5.jpg";
}
else
{
$id5 = rand(1,100000);
$path5 = "images/$id5.jpg";
file_put_contents($path5,base64_decode($image5));
}
}
function checkfourth()
{
global $image4,$path4;
if($image4=="No Image")
{
$id4 = "default";
$path4 = "images/$id4.jpg";
checkfive();
}
else
{
$id4 = rand(1,100000);
$path4 = "images/$id4.jpg";
file_put_contents($path4,base64_decode($image4));
checkfive();
}
}
function checkthird()
{
global $image3,$path3;
if($image3=="No Image")
{
$id3 = "default";
$path3 = "images/$id3.jpg";
checkfourth();
}
else
{
$id3 = rand(1,100000);
$path3 = "images/$id3.jpg";
file_put_contents($path3,base64_decode($image3));
checkfourth();
}
}
function checksecond()
{
global $image2,$path2;
if($image2=="No Image")
{
$id2 = "default";
$path2 = "images/$id2.jpg";
checkthird();
}
else
{
$id2 = rand(1,100000);
$path2 = "images/$id2.jpg";
file_put_contents($path2,base64_decode($image2));
checkthird();
}
}
if($image1=="No Image")
{
global $path1;
$id1 = "default";
$path1 = "images/$id1.jpg";
checksecond();
}
else
{
global $path1;
$id1 = rand(1,100000);
$path1 = "images/$id1.jpg";
file_put_contents($path1,base64_decode($image1));
checksecond();
}
$pre_sql = "SELECT * FROM customer where email='$customer_email'";
$pre_result=mysqli_query($con,$pre_sql);
while($row = mysqli_fetch_assoc($pre_result)){
$customer_id = $row['customer_id'];
$name = $row['name'];
}
/*My Code*/
if($issue_title=="Skin")
{
global $path6;
$question1 = $_POST['question1'];
$question2 = $_POST['question2'];
$question3 = $_POST['question3'];
$prescription_image = $_POST['prescription_image'];
if($prescription_image=="No Image")
{
$id6 = "default";
$path6 = "images/$id6.jpg";
}
else
{
$id6 = rand(1,100000);
$path6 = "images/$id6.jpg";
file_put_contents($path6,base64_decode($prescription_image));
}
$sql = "INSERT INTO cases (customer_id,name,age,city,gender,issue_title,relation,image1,image2,image3,image4,image5,question1,question2,question3,prescription_image,issue_desc,case_id,date) VALUES ('$customer_id','$name','$age','$city','$gender','$issue_title','$relation','$path1','$path2','$path3','$path4','$path5','$question1','$question2','$question3','$path6','$issue_desc','$case_id','$today_date')";
}
else{
/*Code's End*/
$sql = "INSERT INTO cases (customer_id,name,age,city,gender,issue_title,relation,image1,image2,image3,image4,image5,issue_desc,case_id,date) VALUES ('$customer_id','$name','$age','$city','$gender','$issue_title','$relation','$path1','$path2','$path3','$path4','$path5','$issue_desc','$case_id','$today_date')";
}
$result=$con->query($sql);
//Executing query to database
if($result){
echo 'Order Added [email protected]' . $case_id;
}else{
echo 'Could Not Add [email protected]';
}
//Closing the database
mysqli_close($con);
}
?>
スイフト3> Alamofireコードチャンスはほぼ1分かかります。イメージはPHPコードから正常にメッセージを取得することでサーバーにアップロードされ、データベースに保存されずにこのエラーが生成されます:
PHP Notice: Undefined index: image1 in address.php on line 14
PHP Notice: Undefined index: image2 in address.php on line 15
PHP Notice: Undefined index: image3 in address.php on line 16
PHP Notice: Undefined index: image4 in address.php on line 17
PHP Notice: Undefined index: image5 in address.php on line 18
PHP Notice: Undefined index: prescription_image in address.php on line 143
しかしほとんどの場合、100回のうち99回、 alamofire(アップロード処理スイフトエラーログ)によって迅速である生成タイムアウトエラー:
of size 2658665
Upload Progress: 0./2660473
Upload Progress: 0.0246332137180118 65536/2660473
Upload Progress: 0.0369498205770177 98304/2660473
Upload Progress: 0.0492664274360236 131072/2660473
Upload Progress: 0.0615830342950295 163840/2660473
Upload Progress: 0.0738996411540354 196608/2660473
Upload Progress: 0.0862162480130413 229376/2660473
Upload Progress: 0.0985328548720472 262144/2660473
Upload Progress: 0.110849461731053 294912/2660473
Upload Progress: 0.123166068590059 327680/2660473
Upload Progress: 0.135482675449065 360448/2660473
Upload Progress: 0.147799282308071 393216/2660473
Upload Progress: 0.160115889167077 425984/2660473
Upload Progress: 0.172432496026083 458752/2660473
Upload Progress: 0.184749102885088 491520/2660473
Upload Progress: 0.197065709744094 524288/2660473
Upload Progress: 0.2093823166031 557056/2660473
Upload Progress: 0.221698923462106 589824/2660473
Upload Progress: 0.234015530321112 622592/2660473
Upload Progress: 0.246332137180118 655360/2660473
Upload Progress: 0.258648744039124 688128/2660473
Upload Progress: 0.27096535089813 720896/2660473
Upload Progress: 0.283281957757136 753664/2660473
Upload Progress: 0.295598564616142 786432/2660473
Upload Progress: 0.307915171475147 819200/2660473
Upload Progress: 0.320231778334153 851968/2660473
Upload Progress: 0.332548385193159 884736/2660473
Upload Progress: 0.344864992052165 917504/2660473
Upload Progress: 0.357181598911171 950272/2660473
Upload Progress: 0.369498205770177 983040/2660473
Upload Progress: 0.381814812629183 1015808/2660473
Data not uploaded -> Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x12ed8a7d0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=http://***.php, NSErrorFailingURLKey=http://***.php, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}
Error: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." UserInfo={NSUnderlyingError=0x12ed8a7d0 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}}, NSErrorFailingURLStringKey=http://***.php, NSErrorFailingURLKey=http://***.php, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}
うーん、いくつかの追加情報:私は携帯電話でテストしていた時に全部が両方WIFIのためにとネットワークのために働いている SIMが所有者によって排除されたとき。私はWIFIだけで立ち去り、この事に直面する。
私は休暇中にSIMとSIMのシナリオの間に1日のギャップがあります。その間にphp側にいくつかの変更がありますが、それは私が言及することは難しいです。 ご協力いただきありがとうございます。
[**あなたのPHPスクリプトはSQLインジェクションに脆弱です!**](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) – dorukayhan
同じサンプルPHPコードを提供してください? –