【问题标题】:Form upload issue表单上传问题
【发布时间】:2010-11-21 01:39:04
【问题描述】:

我正在尝试实现这种制作漂亮表单上传的方法:

www.kavoir.com/2009/02/styling-file-upload-select-input-control-input-typefile.html/

这很棒而且很简单,但我唯一的问题是每次我选择一个文件时,它都会显示为“C:\fakepath\filename”。我在 Mac 上,我一生都无法弄清楚这是从哪里来的!这是我的代码:

<?php
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors', '1');
if ($_POST['submit'] == "Submit") {
 $temp_file = $_FILES['upload']['tmp_name']."/".$_FILES['upload']['name'];
 $target_file = getcwd()."/uploads/".$_FILES['upload']['name'];
 // if (!move_uploaded_file($temp_file,$target_file)) {
 //  
 // }
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

 <title>untitled</title>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
 <style>
  .upload {
   position:relative;
   width:250px;
   height:135px;
   border:1px solid #666;
   padding:10px;
   background:#DDD;
  } 
  .loading {
   background:rgba(50,50,50,0.8);
   position:absolute;
   top:0;
   left:0;
   width:250px;
   height:135px;
  }
  .realupload {
   position:absolute;
   bottom:0;
   right:0;

   /* start of transparency styles */
   opacity:0;
   -moz-opacity:0;
   filter:alpha(opacity:0);
   /* end of transparency styles */

   z-index:2; /* bring the real upload interactivity up front */
   width:200px;
  }
  form .fakeupload {
/*   background:url(uploadify/select.png) no-repeat 100% 50%;
*/  }
  form .fakeupload input {
   width:238px;
   font-family:Arial,sans-serif;
   padding:5px;
   border:1px solid #666;
   background:#FFF;
   outline:none;
  }
  label {
   width:120px;
   height:30px;
  }
  label img {
   cursor:pointer;
  }
  .upload a.cancel {
   position:absolute;
   top:10px;
   right:10px;
  }
 </style>
</head>

<body>
<div class="upload">
<form name="file" method="post" action="test.php" enctype="multipart/form-data">
 <label for="realupload"><img src="uploadify/select.png" /></label>
 <div class="fakeupload">
  <input type="text" name="fakeupload" /> <!-- browse button is here as background -->
 </div>
 <input type="file" name="upload" id="realupload" class="realupload" onchange="this.form.fakeupload.value = this.value;" />
 <input id="submit" type="submit" name="submit" value="Submit" />
</form>
<a class="cancel" href="test.php"><img src="uploadify/cancel.png" /></a>
<div class="loading"></div>
</div>
<script>
 $(document).ready( function() {
  $('div.loading').fadeOut(0);
 });
 $('form input.submit').click( function() {
  $('div.loading').fadeIn(400);
 });
</script>
</body>
</html>

【问题讨论】:

    标签: php html forms upload


    【解决方案1】:

    这是浏览器的安全级别。我在 Windows (IE) 上遇到过这种情况,但令人惊讶的是你在 Mac 上。尝试其他浏览器或更改当前浏览器的安全选项。不要太保守。

    另外,请尝试使用其他网站的上传表单。

    【讨论】:

    • 我在 Chrome 中得到了这个,但是我只是在 Firefox 中得到了文件名。很奇怪。浏览器构成它自己的目录(“fakepath”必须以某种方式基于我的代码)?
    • 从该页面链接的示例中也会显示相同的路径。很奇怪!
    猜你喜欢
    • 2011-01-21
    • 2015-01-02
    • 2014-10-19
    • 2015-02-17
    • 2021-09-26
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    相关资源
    最近更新 更多