传递上传文件名称的Php问题

时间:2011-08-12 21:43:37

标签: php variables

我问了类似的问题,但是没有得到任何可以帮助我的回复,我想做的就是 1.将文件上传到服务器 2.记住文件的名称,如果它是'hope.jpg'文件并上传到名为'uploads'的文件夹,我需要稍后像'uploads / hope.jpg'。

我试图将其作为变量传递,因为它无法显示此信息:

上传文件时出错,请重试! 警告:fopen(uploads /)[function.fopen]:无法打开流:第112行的D:\ www \ 2010-msc \ businesscards \ QRCodeAPI.class.php中的权限被拒绝

警告:curl_setopt():提供的参数不是第121行的D:\ www \ 2010-msc \ businesscards \ QRCodeAPI.class.php中的有效文件句柄资源

警告:fclose():提供的参数不是第130行的D:\ www \ 2010-msc \ businesscards \ QRCodeAPI.class.php中的有效流资源 解码错误:

这是我使用的html表单:

<form enctype="multipart/form-data" action="index.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
 Choose a file to upload: <input name="uploadedfile" type="file" /><br />
 <input type="submit" value="Upload File" />
 </form>
 <form action="<?php echo $_SERVER["SCRIPT_NAME"]; ?>" method="POST">
         <label for="action"> Method:</label>
         <select id="action" name="action">
                <option value="generate" <?php echo $action == "generate" ?    'selected="selected"' : ""; ?>>generate</option>
        <option value="encode" <?php echo $action == "encode" ? 'selected="selected"' : ""; ?>>encode</option>
        <option value="decode" <?php echo $action == "decode" ? 'selected="selected"' : ""; ?>>decode</option>
    </select>
    </br>
    <label for="message">Message:</label>
    <input type="text" id="message" name="message" value="<?php echo $message; ?>" />

    <input type="submit" value="Submit" />
</form> 

然后我上传了一个这样的文件:

// Where the file is going to be placed 
 $target_path = "uploads/";

 /* Add the original filename to our target path.  
Result is "uploads/filename.extension" */
$target_path = $target_path . basename( $_FILES['uploadedfile']['name']); 
$a = basename( $_FILES['uploadedfile']['name']); 

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) 
{
    echo "uploads/". $a;
} else{
    echo "There was an error uploading the file, please try again!";
}

文件上传后我尝试用

解码
$json = $api->decode ("uploads/". $a);
    $start='{"content":"';
    $pos_start = strpos($json, $start);

    $end='"}';
    $pos_end = strpos($json, $end);

    if ($pos_start === false || $pos_end === false)

    {
    echo "error in decode";
    exit();
    }

    $wiadomosc = substr($json,12,$pos_end - 12);

    echo $wiadomosc;
    exit();

    break;

不幸的是,行$json = $api->decode ("uploads/". $a);只会带来一些错误,但是如果您手动编写服务器上的文件名$json = $api->decode ("uploads/hope.jpg");,那么一切正常。你可以给我任何关于如何获取文件名称的建议,好像它是手动输入的,因为当我放置变量时显然它不起作用!!感谢所有回复

1 个答案:

答案 0 :(得分:0)

名字应该是tmp_name吗? .......