Linux环境,php文件上传,ecshop项目,后台上传商品图片失败,error=7,文件写入失败

Linux环境,php文件上传,ecshop项目,后台上传商品图片失败,error=7,文件写入失败,第1张

1,修改 php.ini

将memory_limit由 8M 改孙和成 16M(或更大纤型),重启apache服务

2,在PHP 文件中 加入 ini_set(”memory_limit”,”100M”)

注意:为了系统的其它资源的正常使用 请您不要将 memory_limit设置太大,其中-1为不限

3,修改.htaccess 文档(前提是该目则竖盯录支持.htaccess)

在文档中新增一句:php_value memory_limit 16M(或更大)

因为系统重构实现均衡负载,网站程序与文件服务器不在一台机子上。于是,程序在上传文件的同时就要将文件上传到文件服务烂做纳器上。

这里涉及到windows主机上传到linux主机,linux主机上传到linux主机。这两个之间呢,只是稍微的有点区别,因为windows的路径可以兼容linux路径,但是linux的路径不兼容windows主机'\\'的写法。所以,在写路径的时候稍加注意即可。

下面,就饥没列举上面两种情况php中使用ftp函数上传文件的具体实现代码。

一、 ftp上传图片参数说明。

$source:本机图片完整的路径。(/a/b/c.jpg)

$des :上传目标linux主机完整的路径。

$ftp_server:ftp地址

$ftp_user_name:ftp用户名

$ftp_user_pass: ftp密码

$port:端口

二、如何使用php中ftp函数上传文件的方法

例如:

本地地址为:/a/b/c.jpg

目标地址为:/d/a/b/c.jpg

2.1、linux主机上传linux主机。

function ftpSendFile($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)

{

// 此步骤是在于上传目录与本机的目录不一致转换使用

$des = "/d" . $des

$conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server")

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)

ftp_pasv($conn_id, TRUE)

$ftp_folder = dirname($des)

$dir = explode("/", $ftp_folder)

$path = ""

for ($i = 0$i <count($dir)$i++) {

$path .= "/" . $dir[$i]

if (!ftp_chdir($conn_id, $path)) {

$result = ftp_mkdir($conn_id, $path)

}

}

if (ftp_put($conn_id, $des, $source, FTP_BINARY)) {

return 1

} else {

return 0

}

ftp_close($conn_id)

}

2、windows主机上传linux主机。

function sendPic($source,$des,$ftp_server,$ftp_user_name,$ftp_user_pass,$port)

{

$des = "/d" . $des

$conn_id = ftp_connect($ftp_server, $port) or die("Couldn't connect to $ftp_server")

$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)

ftp_pasv($conn_id, TRUE)

$ftp_folder = dirname(str_ireplace('\\', '/', $des))

$dir = explode("/", $ftp_folder)

$path = ""

for ($i = 0$i <count($dir)$i++) {

$path .= "/" . $dir[$i]

if (!ftp_chdir($conn_id, $path)) {

$result = ftp_mkdir($conn_id, $path)

}

}

if (ftp_put($conn_id, str_ireplace('\\', '/', $des), $source, FTP_BINARY)) {

return 1

} else {

return 0

}

ftp_close($conn_id)

}

上面的两种使用php中ftp函数上传文件的方法基本可以满足胡悄正常的使用。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8166266.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存