上传文件时出现跨域问题

上传文件时出现跨域问题,第1张

一个新的奇葩问题:前端报跨域出错,原因却在后台上传的文件超过了Tomcat限制。

前端报错

后端日志

所以啊,这根本不是跨域的问题, Tomcat默认上传的文件大小就是1MB ,你上传的文件超过而已。

你可以在前端配置一下文件大小限制,

例如

或者在后端设置上传文件大小限制

以SpringBoot为例

在application.yml中添加配置

方法一:

文件夹:/home/web/attachments

虚拟二级目录到/home/web/zxsv/下(支持同局域网的服务器)

​这样多个子域名进行上传的设计时,只需要attachments目录映射为相关的域名的二级目录,这样就可实现多个子域名共享一个附件服务器了,这种方法最好是用局域网中的附件服务器,这样流量是分开的,当然访问附件的域名是apache,ngixn,IIS等的虚拟二级目录就不说了,好处是现有程序不做任何修改,唯一坏处就是两台服务器必须在一个局域网中,当然你用单台也就没这个问题了

方法二:FTP同步更新

PHP是支持FTP的,给个FTP类里面(不是我写的,只是加了个建立多级目录),自己看着办吧,上传后调用FTP类,同步到FTP服务器中,好处是现有程序只需要在上传那段加上FTP上传就行了,坏处就是一定要支持FTP

<?php

$ftp=new Ftp

//print_r($ftp->nlist(”"))

$ftp->makedir(”3″)

//$ftp->put(”comment.php”,”1.txt”)

$ftp->bye()

//R FTP 处理

class ftp {

var $ftpUrl = ‘www.zxsv.com’

var $ftpUser = ‘zxsv’

var $ftpPass = ‘111111′

var $ftpDir = ‘/zxsv/’

var $ftpR = ”//R ftp资源

var $status = ”

//R 1:成功2:无法连接ftp3:用户错误

function ftp() {

if ($this->ftpR = ftp_connect($this->ftpUrl, 21)) {

if (ftp_login($this->ftpR, $this->ftpUser, $this->ftpPass)) {

if (!empty($this->ftpDir)) {

ftp_chdir($this->ftpR, $this->ftpDir)

}

ftp_pasv($this->ftpR, true)//R 启用被动模式

$status = 1

} else {

$status = 3

}

} else {

$status = 2

}

}

//R 切换目录

function cd($dir) {

return ftp_chdir($this->ftpR, $dir)

}

//建立目录

function mkdir($dir){

return ftp_mkdir($this->ftpR, $dir)

}

function makedir($dir) {

if(!$dir) return 0

$dir = str_replace( “\\”, “/”, $dir )

$mdir = “”

foreach(explode( “/”, $dir ) as $val ) {

$mdir .= $val.”/”

if( $val == “..” || $val == “.” ) continue

if(!@mkdir($mdir)){

echo “创建目录 [".$mdir."]失败.”

//exit

}

}

return true

}

//删除目录

function rmdir($dir){

return ftp_rmdir($this->ftpR, $dir)

}

//R 返回当前路劲

function pwd() {

return ftp_pwd($this->ftpR)

}

//R 上传文件

function put($localFile, $remoteFile = ”) {

if ($remoteFile == ”) {

$remoteFile = end(explode(’/', $localFile))

}

$res = ftp_nb_put($this->ftpR, $remoteFile, $localFile, FTP_BINARY)

print_r($res)

while ($res == FTP_MOREDATA) {

$res = ftp_nb_continue($this->ftpR)

}

if ($res == FTP_FINISHED) {

return true

} elseif ($res == FTP_FAILED) {

return false

}

}

//R 下载文件

function get($remoteFile, $localFile = ”) {

if ($localFile == ”) {

$localFile = end(explode(’/', $remoteFile))

}

if (ftp_get($this->ftpR, $localFile, $remoteFile, FTP_BINARY)) {

$flag = true

} else {

$flag = false

}

return $flag

}

//R 文件大小

function size($file) {

return ftp_size($this->ftpR, $file)

}

//R 文件是否存在

function isFile($file) {

if ($this->size($file) >= 0) {

return true

} else {

return false

}

}

//R 文件时间

function fileTime($file) {

return ftp_mdtm($this->ftpR, $file)

}

//R 删除文件

function unlink($file) {

return ftp_delete($this->ftpR, $file)

}

function nlist($dir = ‘/service/resource/’) {

return ftp_nlist($this->ftpR, $dir)

}

//R 关闭连接

function bye() {

return ftp_close($this->ftpR)

}

}

?>


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存