编辑代码

<?php
/** php 接收流文件
* @param String$file 接收后保存的文件名
* @return boolean
*/
function receiveStreamFile($receiveFile){
    $streamData = isset($GLOBALS['HTTP RAW POST DATA'])? $GLOBALS['HTTP_RAW_POST_DATA'] :'';
    if(empty($streamData)) {
        $streamData = file_get_contents('php://input');
        }
        if($streamData!='') {
            $ret = file_put_contents($receiveFile, $streamData, true);
            }else{
                $ret = false;
            }
            return $ret;
}
//定义服务器存储路径和文件名
$receiveFile = $ SERVER["DOCUMENT ROOT"]."/uploadFiles/swift.png"; 
echo $receiveFile;
$ret= receiveStreamFile($receiveFile);
echo json encode(array('success'=>(bool)$ret));
?>

func sessionUploadPhp(){
    //上传地址
    let url = URL(string: "http://localhost/uploadSwift.php")
    //1.创建会话对象
    let session = URLSession.shared
    //请求
    var request = URLRequest(url: url!,cachePolicy:.reloadIgnoringCacheData) 
    request.httpMethod = "POST"
    //上传数据流
    let fileImage = Bundle.main.path(forResource: "beel", ofType: "png") 
    let imgData = try! Data(contentsOf: URL(fileURLWithPath:fileImage!))
    let uploadTask = session.uploadTask(with: request as URLRequest, from:imgData) { 
        (data:Data?, response:URLResponse?, error:Error?) -> Void in
        //上传完毕后
        if error != nil {
            print(error!) 
            }else{
                let str = String(data: data!, encoding: String.Encoding.utf8) 
                print("上传完毕:\(String(describing:str))")
            }
    }
    //使用resume方法启动任务 
    uploadTask.resume()
}