php复制功能,无法打开流:权限被拒绝 [英] php copy function, failed to open stream: Permission denied

查看:431
本文介绍了php复制功能,无法打开流:权限被拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在服务器上上传图像,下面是我在Internet上发现的脚本,并且在本地工作时,当我部署代码和数据库时出现无法打开流:权限被拒绝"错误.

I am trying to upload image on server, below is script that I found on Internet and in worked locally, when I deployed code and database is gives me "failed to open stream: Permission denied" error.

<?php
//define a maxim size for the uploaded images in Kb
 define ("MAX_SIZE","5000"); 

//This function reads the extension of the file. It is used to determine if the file  is an image by checking the extension.
 function getExtension($str) {
         $i = strrpos($str,".");
         if (!$i) { return ""; }
         $l = strlen($str) - $i;
         $ext = substr($str,$i+1,$l);
         return $ext;
 }

//This variable is used as a flag. The value is initialized with 0 (meaning no error  found)  
//and it will be changed to 1 if an errro occures.  
//If the error occures the file will not be uploaded.
 $errors=0;

    //reads the name of the file the user submitted for uploading
    $image=$_FILES['image']['name'];

    //if it is not empty
    if ($image) 
    {
    //get the original name of the file from the clients machine
        $filename = stripslashes($_FILES['image']['name']);
    //get the extension of the file in a lower case format
        $extension = getExtension($filename);
        $extension = strtolower($extension);
    //if it is not a known extension, we will suppose it is an error and will not  upload the file,  
    //otherwise we will do more tests
 if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png")) 
        {
        //print error message
            echo '<h1>Nepoznata vrsta fajla!</h1>';
            $errors=1;
        }
        else
        {
//get the size of the image in bytes
 //$_FILES['image']['tmp_name'] is the temporary filename of the file
 //in which the uploaded file was stored on the server
 $size=filesize($_FILES['image']['tmp_name']);

//compare the size with the maxim size we defined and print error if bigger
if ($size > MAX_SIZE*1024)
{
    echo '<h1>To large file!</h1>';
    $errors=1;
}

//we will give an unique name, for example the time in unix time format
$image_name=time().'.'.$extension;
//the new name will be containing the full path where will be stored (images folder)
$newname="Content/Images/".$image_name;
//we verify if the image has been uploaded, and print error instead
//$copied = copy($_FILES['image']['tmp_name'], $newname);

$copied = copy('$_FILES['image']['tmp_name'], $newname);

//echo $_FILES['image']['tmp_name'].'<br/>';
//echo $_FILES['image']['name'];

if (!$copied) 
{
    echo '<h1>Error occurred!</h1>';
    $errors=1;
}}}


//If no errors registred, print the success message
 /*if(isset($_POST['Submit']) && !$errors) 
    {
    echo "<h1>You have successfully uploaded image.</h1>";
}*/

 ?>

我从stackoverflow看到了一些答复者,例如 answers1 answer2 ,但我不确定该怎么做?还有其他建议吗?

I saw some answerers from stackoverflow like answers1 and answer2 but I am not sure how to do that? Is there any other suggestion?

谢谢.

推荐答案

请确保运行php并执行此脚本的系统用户对您尝试直接存储文件的位置具有写权限.

Make sure that the system user running php and executing this script has write permission for the directly where you are attempting to store the file.

这篇关于php复制功能,无法打开流:权限被拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆