像在ajax中一样阻止PHP缩略图生成器响应

时间:2016-01-08 06:17:13

标签: php jquery ajax

我正在尝试通过ajax上传图片,并需要将图片网址作为回复。

以下代码..

        $createthumb = new createthumb();
        $todburl =  $this->url;
        $ajaxtype = $_POST['type'];
        $uploads_dir = "../assets/equipmenttype/";
        $uniid = uniqid();
        $now =date('Y-m-d H:i:s');
        $pkid = $_POST['primerkey'];
        $ext =pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION);

        $filename = $pkid."_".$DealerID."_dealerupdate";
        $thumbnamer = $pkid."_".$DealerID."_thumb_dealerupdate_".$uniid.".".$ext;

        $tmpname = $_FILES['file']['tmp_name'];
        $imagename = $_FILES['file']['name'];

        $loc_thumb = $uploads_dir.$thumbnamer;

        $createthumb->create_thumb_with_ratio($tmpname,300,300,$loc_thumb);  //CREATING THUMB
        $createthumb->upload_original(1,$filename,$imagename,$tmpname,$uploads_dir);//for upload original

        $thumnametodb = $thumbnamer;
        $orinametodb = $filename."_".$imagename;

        $data = ['dddd'=>$todburl."assets/equipmenttype/".$thumbnamer];
        header('Content-Type: application/json');
        echo json_encode($data);

PHP Ajax功能

-(void)createConnectionRequestToURL:(NSString *)urlStr withImage:(UIImage*)image withImageName:(NSString*)imageName
{
NSData *imageData = UIImageJPEGRepresentation(image, 90);
NSString *urlString = urlStr;
// setting up the request object now
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];

NSString *boundary = [[NSString alloc]init];
NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
NSMutableData *body = [NSMutableData data];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Disposition: form-data; name=\"file\"; filename=\"test.png\"rn" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"Content-Type: application/%@.jpg\r\n\r\n",imageName] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[NSData dataWithData:imageData]];
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:body];

//Using Synchronous Request. You can also use asynchronous connection and get update in delegates
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"--------%@",returnString);
}

此功能完美运行并在我所需的文件夹中创建拇指。

但这是一个ajax页面,我想将图像名称显示为响应。

在这种情况下,ajax响应就像下面附图所示。

enter image description here

我该如何解决这个问题?

由于

2 个答案:

答案 0 :(得分:0)

您说您希望将图片名称显示为响应

然后只是

echo $_FILES['file']['name'];

然后在您的脚本中,您将获得图像名称作为响应:

 success:function(response){
          console.log('Image Name = '+response);             
 }

您当前的回复是JSON表示( json_encode($data) )&不是图像的名称。

答案 1 :(得分:0)

可能有些输出正在制动响应数据。为确保在响应页面上没有打印任何内容,请尝试输入 ob_start() ob_end_clean()

ob_start();
//...
// your code here
//...
$data['dddd'] = $todburl."assets/equipmenttype/".$thumbnamer;
ob_end_clean();
echo json_encode($data);