Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.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 上载文件时,它总是显示错误_Php_Javascript_Jquery_File Upload - Fatal编程技术网

Php 上载文件时,它总是显示错误

Php 上载文件时,它总是显示错误,php,javascript,jquery,file-upload,Php,Javascript,Jquery,File Upload,我有一个应用程序,其中用户添加一个表行,它将在该行中显示一个文件输入。现在我遇到的问题是,如果您使用输入选择一个文件,然后单击“上载”,它总是说明上载文件时出错,任何文件都会发生这种情况 我已经为文件设置了读写权限,但它仍然表示上传文件时出错。如果有人使用过MAx的AJAX文件上传程序,并且以前有过这个问题,但后来解决了,那么我可以问一下您是如何解决这个问题的。如果没有,那么是否有其他方法可以解决此问题,使其停止显示错误消息以完全合法地上载文件,而是显示文件上载成功消息 当我在这个使用不同服务器

我有一个应用程序,其中用户添加一个表行,它将在该行中显示一个文件输入。现在我遇到的问题是,如果您使用输入选择一个文件,然后单击“上载”,它总是说明上载文件时出错,任何文件都会发生这种情况

我已经为文件设置了读写权限,但它仍然表示上传文件时出错。如果有人使用过MAx的AJAX文件上传程序,并且以前有过这个问题,但后来解决了,那么我可以问一下您是如何解决这个问题的。如果没有,那么是否有其他方法可以解决此问题,使其停止显示错误消息以完全合法地上载文件,而是显示文件上载成功消息

当我在这个使用不同服务器的链接中测试相同的代码:[时,当上传合法文件时,它不会显示错误消息

我正在使用大学的服务器helios.hud.ac.uk

以下是文件输入代码以及停止和开始上传的功能:

 <script type="text/javascript">
     var sourceForm; 

    function insertQuestion(form) {   

        var $tbody = $('#qandatbl > tbody'); 
        var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
        var $image = $("<td class='image'></td>"); 


       var $fileImage = $("<form action='imageupload.php' method='post' enctype='multipart/form-data' target='upload_target' onsubmit='startUpload(this);' class='imageuploadform' >" + 
        "<p class='imagef1_upload_process' align='center'>Loading...<br/><img src='Images/loader.gif' /><br/></p><p class='imagef1_upload_form' align='center'><br/><label>" + 
        "File: <input name='fileImage' type='file' class='fileImage' /></label><br/><label>" + 
        "(jpg, jpeg, pjpeg, gif, png, tif)</label><br/><br/><label>" + 
        "<input type='submit' name='submitBtn' class='sbtn' value='Upload' /></label>" +
        "</p> <iframe class='upload_target' name='upload_target' src='#' style='wclassth:0;height:0;border:0px;solclass #fff;'></iframe></form>");

        $image.append($fileImage);

        $tr.append($image);  
        $tbody.append($tr); 

    }

   function startUpload(imageuploadform){
  $(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
  $(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
  sourceForm = imageuploadform;
      return true;
}

    function stopUpload(success){
          var result = '';
          if (success == 1){
             result = '<span class="msg">The file was uploaded successfully!<\/span><br/><br/>';
          }
          else {
             result = '<span class="emsg">There was an error during file upload!<\/span><br/><br/>';
          }
          $(sourceForm).find('.imagef1_upload_process').css('visibility','hidden');
          $(sourceForm).find('.imagef1_upload_form').html(result + '<label>File: <input name="fileImage" type="file"/><\/label><br/><label>(jpg, jpeg, pjpeg, gif, png, tif)</label><br/><br/><label><input type="submit" name="submitBtn" class="sbtn" value="Upload" /><\/label>');
          $(sourceForm).find('.imagef1_upload_form').css('visibility','visible');     
          return true;   
    }
    </script>

var源形式;
函数insertQuestion(form){
变量$tbody=$(“#qanadbl>tbody”);
var$tr=$(“”);
变量$image=$(“”);
var$fileImage=$(“”+
“

加载…


” “文件:
”+ “(jpg、jpeg、pjpeg、gif、png、tif)

” "" + “

”; $image.append($fileImage); $tr.append($image); $tbody.append($tr); } 函数startUpload(imageuploadform){ $(imageuploadform).find('.imagef1_upload_process').css('visibility','visible'); $(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden'); sourceForm=imageuploadform; 返回true; } 函数stopUpload(成功){ var结果=“”; 如果(成功==1){ 结果='文件已成功上载!

'; } 否则{ 结果='上传文件时出错!

'; } $(sourceForm).find('.imagef1_upload_process').css('visibility','hidden'); $(sourceForm).find('.imagef1_upload_form').html(结果+'文件:
(jpg、jpeg、pjpeg、gif、png、tif)

); $(sourceForm).find('.imagef1_upload_form').css('visibility','visible'); 返回true; }
下面是上载页面(imageupload.php),在该页面上载文件:

<?php
   // Edit upload location here
   $destination_path = getcwd().DIRECTORY_SEPARATOR;

   $result = 0;

   $target_path = $destination_path . basename( $_FILES['fileImage']['name']);

   if(@move_uploaded_file($_FILES['fileImage']['tmp_name'], $target_path)) {
      $result = 1;
   }

   sleep(1);
?>

<script language="javascript" type="text/javascript">window.top.window.stopUpload(<?php echo $result; ?>);</script>  

window.top.window.stopUpload();

我无法理解您的代码,但可能是函数startUpload(源代码表单)没有执行您希望它执行的操作。您对局部变量使用与全局变量相同的名称,然后编写类似sourceForm=source\u form;的内容,这将不会产生任何效果。也许您可以找到避免使用全局变量的方法,或者将局部变量重命名为其他名称

function startUpload(imageuploadform){
  $(imageuploadform).find('.imagef1_upload_process').css('visibility','visible');
  $(imageuploadform).find('.imagef1_upload_form').css('visibility','hidden');
  sourceForm = imageuploadform;
      return true;
}
我不知道这是否与错误有关,但这将使您的代码不那么奇怪


您是否测试过您的脚本是否可以在您尝试的位置写入文件?您是否访问服务器日志以检查相关错误?

自从您第二次创建该脚本后,可能会删除该脚本的副本。也许您没有$destination\u path的写入权限。此外,如果有人上载邪恶的.php文件呢?听起来他可能会覆盖您的脚本脚本或上传任何恶意文件。也许你应该将文件移动到www树之外的路径。我会这样做,但我会一步一步地做,第一件事是尝试让上传文件工作。那么你是说为imageupload.php设置写权限?(这是$destination_路径的存储位置。我更改了代码,没有修复错误,但您是对的,这使它看起来不那么复杂,我更新了上面的代码以包含变量的更改。)