升级php ..然后..使用文件上传文件错误



我不是PHP程序员。有人问我为有问题的Web服务器提供帮助。我修复了所有内容,并更新PHP 5.4至5.6。除文件上传外,他的PHP程序上一切都很好。

消息:getImagesize(var/www/myserver/admin/uploads/temp/test.jpg(:无法打开流:没有这样的文件或目录

此行上的错误:$img_info = getimagesize("uploads/temp/$filename");

    if($_POST['fileselect'][0] != "")
        $filename=$_POST['fileselect'][0];
    else
        $filename=$_POST['dragfile'];

    if(strlen($filename) > 3){
        $finalname=time(); //Set a unique filename by the UNIX time
        //Convert to jpg if tiff
        $img_info = getimagesize("uploads/temp/$filename");
        if($img_info['mime'] == "image/tiff"){
                $clearname=explode(".", "$filename")[0];
                system("convert uploads/temp/"$filename"[0] uploads/temp/$clearname.jpg");
                unlink("uploads/temp/$filename");
                $filename=$clearname.".jpg";
        }

问题可能来自php5.6中的新代码公式,任何想法如何解决?

更新2:文件上传部分...

form.php

的一部分
<form method="post" class="form-horizontal">            
<input type="hidden" id="to_upload" name="to_upload" value="/upload.php">
        <input type="hidden" id="MAX_FILE_SIZE" name="MAX_FILE_SIZE" value="300000000" />
        <input type="hidden" id="id_produit" name="id_produit" value="<?php echo $this->mdl_inventory->form_value('idproduit'); ?>" />
            <div class="control-group">
                <label class="control-label">Nouveau (jpeg): </label>
                <div class="controls">
                    <input type="file" id="fileselect" name="fileselect[]">
                </div>
            </div>

名称fileSelect []是否可能是问题?如何检查脚本是否在" upload.php"中?

upload.php的一部分

/* read the source image */
    $source_image = imagecreatefromjpeg("$src");
    $width = imagesx($source_image);
    $height = imagesy($source_image);
$fn = (isset($_SERVER['HTTP_X_FILENAME']) ? $_SERVER['HTTP_X_FILENAME'] : false);
    if ($fn) {
        // AJAX call
        file_put_contents(
            'uploads/temp/' . $fn,
            file_get_contents('php://input')
        );
        echo "$fn uploaded";
        exit();
    }else {
        // form submit
        $files = $_FILES['fileselect'];
        foreach ($files['error'] as $id => $err) {
            if ($err == UPLOAD_ERR_OK) {
                $fn = $files['name'][$id];
                move_uploaded_file(
                    $files['tmp_name'][$id],
                    'uploads/' . $fn
                );
                echo "<p>File $fn uploaded.</p>";
            }
        }
    }

ajax脚本filedrag.js(上传(

(function() {
    // getElementById
    function $id(id) {
        return document.getElementById(id);
    }

    // output information
    function Output(msg) {
        var m = $id("messages");
        m.innerHTML = msg + m.innerHTML;
    }

    // file drag hover
    function FileDragHover(e) {
        e.stopPropagation();
        e.preventDefault();
        e.target.className = (e.type == "dragover" ? "hover" : "");
    }

    // file selection
    function FileSelectHandler(e) {
        // cancel event and hover styling
        FileDragHover(e);
        // fetch FileList object
        var files = e.target.files || e.dataTransfer.files;
        // process all File objects
        for (var i = 0, f; f = files[i]; i++) {
            ParseFile(f);
            UploadFile(f);
        }
    }

    // output file information
    function ParseFile(file) {
        Output(
            "<p>File information: <strong>" + file.name +
            "</strong> type: <strong>" + file.type +
            "</strong> size: <strong>" + file.size +
            "</strong> bytes</p>"
        );
        // display an image
        if (file.type.indexOf("image") == 0) {
            var reader = new FileReader();
            reader.onload = function(e) {
                Output(
                    "<p><strong>" + file.name + ":</strong><br />" +
                    '<img src="' + e.target.result + '" /></p>'
                );
            }
            reader.readAsDataURL(file);
        }
        // display text
        if (file.type.indexOf("text") == 0) {
            var reader = new FileReader();
            reader.onload = function(e) {
                Output(
                    "<p><strong>" + file.name + ":</strong></p><pre>" +
                    e.target.result.replace(/</g, "&lt;").replace(/>/g, "&gt;") +
                    "</pre>"
                );
            }
            reader.readAsText(file);
        }
    }

    // upload JPEG files
    function UploadFile(file) {
        // following line is not necessary: prevents running on SitePoint servers
        if (location.host.indexOf("sitepointstatic") >= 0) return
        var xhr = new XMLHttpRequest();
        if (xhr.upload && (file.type == "image/jpeg" || file.type == "image/tiff" ) && file.size <= $id("MAX_FILE_SIZE").value) {
            // create progress bar
            var o = $id("progress");
            var progress = o.appendChild(document.createElement("p"));
            progress.appendChild(document.createTextNode("upload " + file.name));

            // progress bar
            xhr.upload.addEventListener("progress", function(e) {
                var pc = parseInt(100 - (e.loaded / e.total * 100));
                progress.style.backgroundPosition = pc + "% 0";
            }, false);
            // file received/failed
            xhr.onreadystatechange = function(e) {
                if (xhr.readyState == 4) {
                    progress.className = (xhr.status == 200 ? "success" : "failure");
                }
            };
            // start upload
            xhr.open("POST", $id("to_upload").value + "?idproduit=" + $id("id_produit").value, true);
            xhr.setRequestHeader("X_FILENAME", file.name);
            xhr.send(file);
            $('#dragfile').attr('value', file.name);
        }
    }

    // initialize
    function Init() {
        var fileselect = $id("fileselect"),
            filedrag = $id("filedrag"),
            submitbutton = $id("submitbutton");
        // file select
        fileselect.addEventListener("change", FileSelectHandler, false);
        // is XHR2 available?
        var xhr = new XMLHttpRequest();
        if (xhr.upload) {
            // file drop
            filedrag.addEventListener("dragover", FileDragHover, false);
            filedrag.addEventListener("dragleave", FileDragHover, false);
            filedrag.addEventListener("drop", FileSelectHandler, false);
            filedrag.style.display = "block";
            // remove submit button
            //submitbutton.style.display = "none";
        }
    }
    // call initialization file
    if (window.File && window.FileList && window.FileReader) {
        Init();
    }

})();

上述代码的语法对于5.6来说是正确的,没有问题。
我也没有将权限视为问题,否则您会遇到"许可拒绝"错误。

因此,最有可能的是,您正在寻找的文件中不存在文件夹中的文件。

错误在这里: xhr.setRequestheader(" x_filename",file.name(;

x-filename ...我认为这是apache更新问题。

感谢您的帮助。

最新更新