Html示例代码:
<html>
<body>
<form enctype="multipart/form-data" action="upload.php" method="POST">
Company Name:<input type="text" name="company"/><br />
ClientName: <input type="text" name="ClientName"/><br />
<br />
<input type="hidden" name="MAX_FILE_SIZE" value="5120000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
</body>
示例Php代码:
<?php
$file_name = $_POST['company'];
$random_digit = rand(0000,9999);
$new_file_name = $random_digit.$file_name;
$uploaddir = 'c:/temp/'.$new_file_name;
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo "<p>";
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed";
}
echo "</p>";
echo '<pre>';
echo 'Here is some more debugging info:';
print_r($_FILES);
echo '['.$new_file_name.']';
print "</pre>";
?>
我遇到重命名问题。它重命名文件,但它也保留原始名称。因此,如果我上传文件名joey.doc,则会更改为随机#= 4567,公司名称= whatever,文件名= joey.doc输出= 4567whateverjoey.doc。我正在寻找的是文件名改为随机数,只附加公司= 4567whatever.doc。稍后我将编写代码来创建公司名称目录,将该公司的所有文件存储在他们的目录中。将位置标记存储在xml中,然后拉出一个表来引用。信息。另外,我使用客户端名称输入框来解码什么文件。
如果编写xml就像asp.net C#我应该没问题
答案 0 :(得分:0)
您将再次附加旧名称:
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
如果您只想附加扩展程序,请查看pathinfo()
答案 1 :(得分:0)
更改此行:
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
特别是只对basename(...)部分进行一些字符串操作。 基本上,您所关心的只是扩展...并且根据您的文件名限制和所需的稳健性,答案可能很简单,或者有点棘手。
一个例子(所以你明白了):
$uploadfile = $uploaddir . '.' . split('.',basename($_FILES['userfile']['name']))[1];
或使用内置函数Pathinfo
答案 2 :(得分:0)
在行中:
$uploaddir = 'c:/temp/'.$new_file_name;
您将新文件名添加到它所在的目录中。
但在这一行:
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
您还将上传的旧名称附加到该字符串。您应该执行@TimWolla建议的内容,如果您只想查找扩展名,请查看pathinfo()
。