【问题标题】:Uploading file with a unique name - what's wrong with my code?上传具有唯一名称的文件 - 我的代码有什么问题?
【发布时间】:2014-09-01 08:32:12
【问题描述】:

我正在尝试使用此代码将文件上传到服务器:

$data = substr($_POST['imageData'], strpos($_POST['imageData'], ",") + 1);
$decodedData = base64_decode($data);
$name = uniqid(rand(), true) . '.jpg';
$fp = fopen('"imgdownload/'.$name.'"', 'wb');
fwrite($fp, $decodedData);
fclose($fp);

文件不会以这种方式上传,它只有在我输入默认名称时才有效,例如

$fp = fopen("imgdownload/myfile", 'wb');

我收到以下回复:

警告:fopen("imgdownload/1892454042e0263cf14.94958715.jpg"):无法打开流:C:\xampp\htdocs\OrlenOla\api\process.php 中的参数无效6 行

警告:fwrite() 期望参数 1 是资源,在 C:\xampp\ 中给出布尔值htdocs\OrlenOla\api\process.php7

警告:fclose() 期望参数 1 是资源,布尔值给定在 C:\xampp\htdocs\OrlenOla\api\process.php8

我一遍又一遍地查看代码,但看不出问题出在哪里。有人帮忙吗?

【问题讨论】:

    标签: php


    【解决方案1】:

    正如错误所说:

    警告:fopen("imgdownload/1892454042e0263cf14.94958715.jpg"): 失败 打开流:参数无效 C:\xampp\htdocs\OrlenOla\api\process.php 在第 6 行

    文件名中有“嵌套”引号。

    $fp = fopen('"imgdownload/' . $name . '"', 'wb');
    //           ^                         ^
    //         nested quotes should not be here
    

    试试这个:

    $fp = fopen('imgdownload/' . $name, 'wb');
    

    【讨论】:

    • 是的,就是这样,谢谢! I'll accept when the option gets available (12 minutes).
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-08
    • 2015-08-22
    相关资源
    最近更新 更多