- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我是从一本名为“PHP the Complete Reference - PHP5.2”的书上自学PHP的我目前在第 11 章 FTP、上传、删除、makedir 等,但遇到了一些本书未涵盖的问题:
根据我的教科书,这是一个上传到服务器的简单代码:
$connect=ftp_connect("johnsite.com");
$result=ftp_login($connect,"john@johnsite","johnnyWalker");
if(!$result){
echo'Could not connect to Server';
}
$result=ftp_put($connect,'myFile.php',FTP_ASCII);
echo'UPLOADING FILE......';
if($result){
echo'File Uploaded!';
}
我的问题:
public_html/images/myFile.jpg
在示例中 myFile.php 是硬编码的,如果我希望用户选择要上传的文件怎么办?我假设你可以做这样的事情是否正确:
<input type="file" name="myFile" value="upload a file" />
<input type="submit" name="upload" />
if(isset($_POST['upload'])){
$fileName=$_POST['myFile']; //file is now assigned to var name
$result=ftp_put($connect,$fileName,FTP_ASCII); //file linked to var name being uploaded
}
这是最有效的安全方式吗?
感谢阅读
最佳答案
正如@Bonner 所说,Fabien 的回答不正确,因为您正在寻找一个脚本来将文件从您网站上的页面上传到服务器。
首先要记住的是 ftp_put()函数将始终覆盖现有文件。相反,我建议您查看 PHP move_uploaded_file
代码
这是表格。在 action 属性中我们指定了一个文件,它将处理和处理所有文件。您需要为表单的 enctype 属性使用 multipart/form-data 值。
为了更好地理解,我几乎在所有地方都添加了注释。
<form action="upload.php" method="post" enctype="multipart/form-data">
File: <input type="file" name="upload-file" size="30" />
<input type="submit" name="submit" value="Upload file" />
</form>
upload.php
<?php
// Used to determinated if the upload file is really a valid file
$isValid = true;
// The maximum allowed file upload size
$maxFileSize = 1024000;
//Allowed file extensions
$extensions = array('gif', 'jpg', 'jpeg', 'png');
// See if the Upload file button was pressed.
if(isset($_POST['submit'])) {
// See if there is a file waiting to be uploaded
if(!empty($_FILES['upload-file']['name'])) {
// Check for errors
if(!$_FILES['upload-file']['error']) {
// Renamed the file
$renamedFile = strtolower($_FILES['upload-file']['tmp_name']);
// Get the file extension
$fileInfo = pathinfo($_FILES['upload-file']['name']);
// Now vaidate it
if (!in_array($fileInfo['extension'], $extensions)) {
$isValid = false;
echo "This file extension is not allowed";
}
// Validate that the file is not bigger than 1MB
if($_FILES['upload-file']['size'] > $maxFileSize) {
$isValid = false;
echo "Your file's size is to large. The file should not be bigger than 1MB";
}
// If the file has passed all tests
if($isValid)
{
// Move it to where we want it to be
move_uploaded_file($_FILES['upload-file']['tmp_name'], 'uploads/'.$renamedFile);
echo 'File was successfully uploaded!';
}
}
// If there is an error show it
else {
echo 'There was an error file trying to upload the file: '.$_FILES['upload-file']['error'];
}
}
}
关于PHP FTP_PUT 上传到目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31045233/
文件在 FTP 服务器上创建,但其大小始终为 0 字节。请给我一个解决方案,以便文件上传成功。 我不断收到此警告: Warning: ftp_put (): PORT command successf
当我尝试使用 PHP 的 ftp_put 函数上传文件时,早些时候出现错误: 警告:ftp_put() [function.ftp-put]:无数据连接 现在,我尝试开启被动模式: ftp_pasv(
我通过 FTP 上传 XML 文件: $ftp = "ftp"; $username = "username"; $pwd = "password"; $filename = $_FILES[$xyz
我正在尝试通过 ftp_put 将文件上传到 Windows 服务器。 我的代码如下: $date = date('ymd'); $file_name =
我有一个 FTP 类,它具有连接、断开连接、上传和下载文件到其他 ftp 服务器的功能。 我有这个功能,我想在文本文件中记录上传失败的原因,但是基于 ftp_put文档,它只在失败时返回 false:
我正在尝试创建一个 FTP 脚本,它将本地文件夹结构复制到一个 FTP 点。基本上是更新网站。 我一直在测试以下代码(已更改用户/密码/域)但连接没有失败并且似乎正常工作。 $server =
我正在尝试将图像文件从我的本地 PC 上传到远程服务器。该图像来自一个简单的 html 输入 (type=file),文件数组包含这些: Array ( [name] => image42.jpg [
我是从一本名为“PHP the Complete Reference - PHP5.2”的书上自学PHP的我目前在第 11 章 FTP、上传、删除、makedir 等,但遇到了一些本书未涵盖的问题:
我尝试通过 PHP 的 ftp_put 函数上传文件,如下所示: ftp_put($this->conn_id, $rempath, $locpath, $mode); 但是我收到错误“无法存储”。而
当使用 ftp_put 时,应该如何处理不在当前目录中的文件?这段代码试图上传一个我知道存在的文件,但它总是给出以下错误: “警告:ftp_put() [function.ftp-put]: 未采取请
我正在研究必须将 33,000 或更多 csv 文件上传到服务器的解决方案。 我的脚本可以正常处理多达 25,000 个文件,但有时会在上传 26,000 个文件或有时会上传 27,000 个文件等后
您好,语法如下: $source = $csv_filename; $target = '/locexport/'.$csv_filename; $conn = ftp_connect("ftp.s
情况是这样的……我有两台服务器,服务器 1 和服务器 2。服务器 1 从服务器 2 下载一个 csv 文件,将其从服务器 2 删除,从中读取行并进行一些处理。 在处理过程中,可以重新创建或更改服务器
我在 Web 服务器上有一个 PHP 脚本,它通过 ftp_put 将文件上传到另一个远程服务器。 如何向用户显示当前上传进度? 我见过的唯一类似的系统是用于从用户上传文件,使用 ajax 请求检查服
我们的一个供应商要求我们从 ftp 更改为 ftps 以向他们发送文件。 我有一个使用 ftp_connect 传输文件的 PHP 脚本。 我已将脚本修改为现在使用 ftp_ssl_connect,虽
在 PHP 及其手册中,我无法清楚地找到 ftp_fput 与 ftp_put 之间的区别。 ftp_fput ftp_put 谁能解释一下这两种方法? 最佳答案 ftp_fput() 需要一个开放的
我使用 ftp_put/ftp_nb_put 将文件从我的 PHP 服务器上传到另一台机器。我经常(90% 的时间)收到荒谬的错误消息,例如: Warning: ftp_nb_put(): 2 mat
当我尝试上传文件时收到权限被拒绝的消息: Warning: ftp_put() [function.ftp-put]: Can't open that file: Permission denied
我有一个用 php 编写的脚本,基本上可以将图像上传到服务器。我正在使用 ftp 帐户凭据将此脚本上传到我的服务器上。但是,当我尝试访问它时,它给我登录错误。这是错误日志: [09-Apr-2014
我有一台通过 PHP 运行一些 FTP 的 PC,我知道它在 1-2 个月前可以工作,但现在我回到它,我发现这台 PC 不再工作了。我知道我一直在使用 PC,但我想不出可能发生了什么变化。 PHP 正
我是一名优秀的程序员,十分优秀!