Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用jcrop裁剪后预览图像未显示_Php_Jquery_Image_Upload_Jcrop - Fatal编程技术网

Php 使用jcrop裁剪后预览图像未显示

Php 使用jcrop裁剪后预览图像未显示,php,jquery,image,upload,jcrop,Php,Jquery,Image,Upload,Jcrop,我使用两个不同的php页面创建了一种上传图像的新方法 1进行上传,而另一个进行裁剪。在某种程度上,我必须对它保存到的文件夹设置权限,而且它似乎可以工作,但由于某种奇怪的原因,我知道它不能工作。它假设将剪切图像的副本保存到同一文件夹中,但目前似乎没有这样做。我不知道它为什么起作用,而且已经停止了作用。我已经看了一段时间的代码,但我一生都看不出这个问题,我对php比较陌生,但它似乎是一个解决方案,可以上传图像并裁剪它们,无论您使用的是IE 8、9还是其他浏览器 下面是upload.php部分的代码:

我使用两个不同的php页面创建了一种上传图像的新方法

1进行上传,而另一个进行裁剪。在某种程度上,我必须对它保存到的文件夹设置权限,而且它似乎可以工作,但由于某种奇怪的原因,我知道它不能工作。它假设将剪切图像的副本保存到同一文件夹中,但目前似乎没有这样做。我不知道它为什么起作用,而且已经停止了作用。我已经看了一段时间的代码,但我一生都看不出这个问题,我对php比较陌生,但它似乎是一个解决方案,可以上传图像并裁剪它们,无论您使用的是IE 8、9还是其他浏览器

下面是upload.php部分的代码:

<!DOCTYPE html PUBLIC "-//W3C// XHHTML 1.0 Strict//EN" "http://www.w3.org/TR/XHTML/DTD/xhtml1-strict.dtd" >
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
</head>
<body >
<?php
    $folder = 'imgtest/';
    $orig_w = 500;

    if(isset($_POST['submit']) )
    {
        $imageFile = $_FILES['image']['tmp_name'];
        $filename = basename( $_FILES['image']['name']);

        list($width, $height) = getimagesize($imageFile);

        $src = imagecreatefromjpeg($imageFile);
        $orig_h = ($height/$width) * $orig_w;

        $tmp = imagecreatetruecolor($orig_w,$orig_h);
        imagecopyresampled($tmp, $src, 0,0,0,0, $orig_w,$orig_h,$width,$height);

        imagejpeg($tmp, $folder.$filename, 100);

        imagedestroy($tmp);
        imagedestroy($src);

        $filename = urlencode($filename);
        header("Location: crop.php?filename=$filename&height=$orig_h");

    }

?>
    <h1>php Upload Form</h1>
  <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
    <p>
     <label for="image">Image:</label>
     <input type="file" name="image" id="image"/><br/>
    </p>
    <p>
    <input type="submit" name="submit" value="Upload Image!"/>
    </p>
  </form>

</body>
<script>

</script>
</html>
下面是裁剪部分的代码:

    <?php

$folder = 'imgtest/';
$filename = $_GET['filename'];
$orig_w = 500;
$orig_h = $_GET['height'];

$targ_w = 120;
$targ_h = 100;

$ratio = $targ_w / $targ_h;

if (isset($_POST['submit']))
{
    $src = imagecreatefromjpeg($folder.$filename);
    $tmp = imagecreatetruecolor($targ_w, $targ_h);
    imagecopyresampled($tmp, $src, 0,0,$_POST['x'],$_POST['y'], $targ_w, $targ_h, $_POST['w'], $_POST['h']);

    imagejpeg($tmp, $folder.'t_'.$filename, 100);

    imagedestroy($tmp);
    imagedestroy($src);

    echo "<h1> Saved Thumbnail</h1> <img src=\"$folder/t_$filename\"/>";
}
?>


非常感谢您的帮助。

标题在这种情况下,必须先发送php标题,然后才能回复任何内容。因此,将upload.php中的php部分移动到该文件的顶部:

<?php
    $folder = 'imgtest/';
    $orig_w = 500;

    if(isset($_POST['submit']) )
    {
        $imageFile = $_FILES['image']['tmp_name'];
        $filename = basename( $_FILES['image']['name']);

        list($width, $height) = getimagesize($imageFile);

        $src = imagecreatefromjpeg($imageFile);
        $orig_h = ($height/$width) * $orig_w;

        $tmp = imagecreatetruecolor($orig_w,$orig_h);
        imagecopyresampled($tmp, $src, 0,0,0,0, $orig_w,$orig_h,$width,$height);

        imagejpeg($tmp, $folder.$filename, 100);

        imagedestroy($tmp);
        imagedestroy($src);

        $filename = urlencode($filename);
        header("Location: crop.php?filename=$filename&height=$orig_h");

    }

?>

<!DOCTYPE html PUBLIC "-//W3C// XHHTML 1.0 Strict//EN" "http://www.w3.org/TR/XHTML/DTD/xhtml1-strict.dtd" >
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
</head>
<body >
    <h1>php Upload Form</h1>
  <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
    <p>
     <label for="image">Image:</label>
     <input type="file" name="image" id="image"/><br/>
    </p>
    <p>
    <input type="submit" name="submit" value="Upload Image!"/>
    </p>
  </form>

</body>
<script>

</script>
</html>

告诉它是否仍然不起作用。

现在刚刚尝试过,并将其放在顶部,但它似乎仍然不起作用。在中,它只显示图像占位符(如果我可以调用它们),在IE和firefox中,它只显示alt文本。您没有在图像显示页面alt=thumb/>中设置php变量。可能是问题吗?我不确定我是否明白你的意思。我遵循了一个教程,那个人说这样说。我必须对PHP.INI做些什么才能让它工作吗?不,我不这么认为。在裁剪页面中,您在哪里定义了这些php变量?因为我看不到他们在那页的任何地方定义。。。
<?php
    $folder = 'imgtest/';
    $orig_w = 500;

    if(isset($_POST['submit']) )
    {
        $imageFile = $_FILES['image']['tmp_name'];
        $filename = basename( $_FILES['image']['name']);

        list($width, $height) = getimagesize($imageFile);

        $src = imagecreatefromjpeg($imageFile);
        $orig_h = ($height/$width) * $orig_w;

        $tmp = imagecreatetruecolor($orig_w,$orig_h);
        imagecopyresampled($tmp, $src, 0,0,0,0, $orig_w,$orig_h,$width,$height);

        imagejpeg($tmp, $folder.$filename, 100);

        imagedestroy($tmp);
        imagedestroy($src);

        $filename = urlencode($filename);
        header("Location: crop.php?filename=$filename&height=$orig_h");

    }

?>

<!DOCTYPE html PUBLIC "-//W3C// XHHTML 1.0 Strict//EN" "http://www.w3.org/TR/XHTML/DTD/xhtml1-strict.dtd" >
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
</head>
<body >
    <h1>php Upload Form</h1>
  <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="multipart/form-data">
    <p>
     <label for="image">Image:</label>
     <input type="file" name="image" id="image"/><br/>
    </p>
    <p>
    <input type="submit" name="submit" value="Upload Image!"/>
    </p>
  </form>

</body>
<script>

</script>
</html>