诡异的档案上传

Home Home
引用 | 编辑 DLd
2009-03-29 13:20
楼主
推文 x0
目前在写一个有上传进度的上传程式

因为没有什么Ajax基础 所以就去抓了jqUploader 然后照官方的手册慢慢改

接下来诡异的事情就发生了

因为要处理上传后的档案

所以自己写了一只 php 然后用 move_uploaded_file()

结果在本机测试都正常

可是上传到空间后就无法正常上传

测试了一下后发现错误好像是在 move_uploaded_file() 这个函式上

他并没有传回True

请问我是不是有什么地方没注意到呢 ?


复制程式
              if(move_uploaded_file($_FILES['UpFile']['tmp_name'],'./' . $_FILES['UpFile']['name']))
                     echo "ok";
              else
                     echo "here error";


献花 x0
引用 | 编辑 Inndy
2009-04-25 15:01
1楼
  
小弟这有一支上传程式,自行修改试试看吧~
还有显示错误讯息的功能
复制程式
<?php
  define("UPLOAD_DIR", "./");

  // 用来显示错误讯息
  function error($str)
  {
    print "<font color=\"#ff0000\">{$str}</font>\n";
    exit();
  }

  header("Content-Type: text/html; charset=big5");

  print <<<_EOT_
<form method="POST" action="301.php" enctype="multipart/form-data">
  <input type="hidden" name="MAX_FILE_SIZE" value="102400">
  <input type="file" name="file">
  <input type="submit" value="传送">
  <input type="hidden" name="mode" value="upload">
</form>
_EOT_;

  if($_POST["mode"] == "upload")
  {
    // 错误检查
    switch ($_FILES["file"]["error"])
    {
      case UPLOAD_ERR_INI_SIZE:
      case UPLOAD_ERR_FORM_SIZE:
        error("超过档案大小限制。");
      case UPLOAD_ERR_PARTIAL:
      case UPLOAD_ERR_NO_FILE:
        error("无法上传。");
    }

    // 为求慎重,也检查一次档案的大小
    if($_FILES["file"]["size"] > 1024 * 100)
    {
      error("超过档案大小限制。");
    }
///////////////////
//关闭阻挡功能//
//////////////////
//    // 拒绝png与jpeg之外的档案
//    if(!preg_match("/^image\/.*(png|jpeg)$/i", $_FILES["file"]["type"]))
//    {
//      error("档案形式不合法。");
//    }


    // 拒绝使用了特定字元以外之文字的档名
    if(preg_match("/[^\w\d\-\.]/", $_FILES["file"]["name"]))
    {
      error("档名不合法。");
    }

    // 移动档案
    $upload_file = UPLOAD_DIR . $_FILES["file"]["name"];
    if(move_uploaded_file($_FILES["file"]["tmp_name"], $upload_file))
    {
      chmod($upload_file, 0644);
      $img_size = getimagesize($upload_file);
      print "以下的档案已经上传成功。<br>\n";
      print '<img src="' . $upload_file . '" ';
      print $img_size[3] . ' border="0">';
    }
    else
    {
      error("上传失败。");
    }
  }
?>


献花 x0