this is error message我试图修复复制功能不运行。这是我的代码:
<?php
if( $_FILES['file']['name'] != "" ) {
copy( $_FILES['file']['name'], "php5/image" ) or die( "Could not copy file!");
} else {
die("No file specified!");
}
?>
<html>
<head>
<title>Uploading Complete</title>
</head>
<body>
<h2>Uploaded File Info:</h2>
<ul>
<li>Sent file: <?php echo $_FILES['file']['name']; ?>
<li>File size: <?php echo $_FILES['file']['size']; ?> bytes
<li>File type: <?php echo $_FILES['file']['type']; ?>
</ul>
</body>
</html>
为什么它不起作用?如何解决?
我正在
警告:copy(feel_like_doraemon.jpg):无法打开流:没有这样的文件或目录
答案 0 :(得分:0)
由于['name']
是文件名,而不是上传后的文件路径,而不是['name']
,请尝试使用['tmp_name']
copy( $_FILES['file']['tmp_name'], "php5/image" ) or die( "Could not copy file!");
答案 1 :(得分:0)
这是因为上传的文件没有使用原始名称存储在服务器上,它们被赋予tmp_name
索引中的临时文件名。此外,出于安全考虑,您应使用move_uploaded_file
代替copy
。
您的目的地路径也需要存在。
答案 2 :(得分:0)
根据您的代码,您必须使用移动上传文件功能而不是复制。
Do as mentioned below.
<?php
if( $_FILES['file']['name'] != "" ) {
$tmp_name = $_FILES["file"]["tmp_name"];
$name = basename($_FILES["file"]["name"]);
move_uploaded_file($tmp_name, "php5/image/".$name)or die( "Could not copy file!");
//copy( $_FILES['file']['name'], "php5/image" ) or die( "Could not copy file!");
} else {
die("No file specified!");
}
?>
答案 3 :(得分:0)
上传文件时,您应使用move_uploaded_file
将文件实际存储在所选目录中。此外,使用完整路径而不是相对路径对我来说总是更好 - 更改适用的行以适应您的环境。
<?php
if( $_SERVER['REQUEST_METHOD']=='POST' && isset( $_FILES['file'] ) ){
try{
$obj=$_FILES['file'];
$name=$obj['name'];
$tmp=$obj['tmp_name'];
$dir=$_SERVER['DOCUMENT_ROOT'] . '/php5/image';
if( !realpath( $dir ) )throw new Exception( sprintf( 'unable to find target directory %s', $dir ) );
$target="{$dir}/{$name}";
if( is_uploaded_file( $tmp ) && move_uploaded_file( $tmp, $target ) ){
/* OK */
@unlink( $tmp );
} else {
/* error */
}
}catch(Exception $e ){
exit( $e->getMessage() );
}
}
?>
<html>
<head>
<title>Uploading Complete</title>
</head>
<body>
<h2>Uploaded File Info:</h2>
<ul>
<li>Sent file: <?php echo $_FILES['file']['name']; ?>
<li>File size: <?php echo $_FILES['file']['size']; ?> bytes
<li>File type: <?php echo $_FILES['file']['type']; ?>
</ul>
</body>
</html>