【问题标题】:move_uploded_file is not working while using curl in php在 php 中使用 curl 时 move_uploded_file 不起作用
【发布时间】:2012-05-21 13:40:40
【问题描述】:

以下是 curl 中的代码,我正在发送图像和注册号...

char url[]="xyz.com/imm/application.php?";
    char curlErr[2*CURL_ERROR_SIZE]={0};
    CURL *curl=NULL;
    struct curl_httppost *post=NULL, *last=NULL;
    FILE *fp=NULL;


    fp = fopen(SEND_DATA_RESPONSE_PATH, "w");
    if (fp == NULL) {
printf("%s:unable to open %s\n", __func__, SEND_DATA_RESPONSE_PATH);
        return -1;
    }
    curl = curl_easy_init();
    if (!curl) {
printf("%s:unable to init curl\n", __func__);
        return -2;
    }
    curl_easy_setopt(curl, CURLOPT_URL, url);
    curl_easy_setopt(curl, CURLOPT_FILE, fp);

    curl_formadd(&post, &last, CURLFORM_COPYNAME, "registerNumber",
        CURLFORM_COPYCONTENTS, studentDetails.regNo, CURLFORM_END);
    curl_formadd(&post, &last, CURLFORM_COPYNAME, "studentPhoto",
        CURLFORM_FILE, PHOTO_PATH, CURLFORM_END);
    curl_formadd(&post, &last, CURLFORM_COPYNAME, "parentImage",
        CURLFORM_FILE, SIG_PATH, CURLFORM_END);


    curl_easy_setopt(curl, CURLOPT_HTTPPOST, post);
    curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
    curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 60);
    curl_easy_setopt(curl, CURLOPT_TIMEOUT, 60);
    curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, curlErr);
    res=curl_easy_perform(curl);
    curl_formfree(post);
    curl_easy_cleanup(curl);
    if (res != 0) {
printf("%s:Curl error: %s\n", __func__, curlErr);
        return -3;
    }
    return 0;

在此之后.. 在 application.php 页面中,我正在尝试获取 rer 编号和图像并将此图像上传到服务器.. 但是 move_uploaded_file 不起作用...

$regNum=$_POST['registerNumber'];
 $std_img_tmp_name=$_FILES['studentPhoto']['tmp_name'];
 $std_img_name = $_FILES['studentPhoto']['name'];
 $std_img_fileSize = $_FILES['studentPhoto']['size'];
 $std_img_fileType = $_FILES['studentPhoto']['type'];
 $sig_tmp_name=$_FILES['signatureImage']['tmp_name'];
 $sig_name = $_FILES['signatureImage']['name'];
 $sig_fileSize = $_FILES['signatureImage']['size'];
 $sig_fileType = $_FILES['signatureImage']['type'];

 $target_path = "../uploads/";

 $student_img_name=$target_path.$std_img_name;
 $signature_name=$target_path.$sig_name;

$photo_status=move_uploaded_file($_FILES["studentPhoto"]['tmp_name'], $student_img_name); 
$sig_image_status=move_uploaded_file($_FILES["signatureImage"]["tmp_name"], $signature_name); 

if($photo_status==FALSE || $sig_image_status==FALSE)
{
    echo "<result><error>Unable to upload photo</error></result>";
    exit(); 
}

它抛出一个错误......如何解决这个......

【问题讨论】:

  • 无法上传照片......
  • 当我尝试回显 $_FILES['studentPhoto']['tmp_name'];它显示临时文件名..但是当我要上传文件夹时它不会移动图像...

标签: php mysql curl


【解决方案1】:

代码看起来正确。检查并确保上传目录具有正确的权限。

【讨论】:

    猜你喜欢
    • 2016-05-25
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    相关资源
    最近更新 更多