<?php include 'aa.php'; // 制定允许其他域名访问 header("Access-Control-Allow-Origin:*"); // 响应类型 header('Access-Control-Allow-Methods:POST'); // 响应头设置 header('Access-Control-Allow-Headers:x-requested-with, content-type'); $myfile = $_FILES['file']; $id = $_POST["id"]; if($myfile["error"]==0){ //得到文件名 $fileName = $myfile["name"]; //得到临时存储位置 $tmpName = $myfile["tmp_name"]; //得到文件的后缀名 $ext = strrchr($fileName,'.'); // $newFileName = time().rand(10000,99999).$ext; //上传 move_uploaded_file($tmpName,'productimg/'.$newFileName); $sql = "UPDATE zhenggong set jpg = '$newFileName' WHERE id=15"; //执行sql语句 $count = execute_sql($sql); if($count>0){ echo json_encode(array("status"=>200,"msg"=>"图片修改成功","sql"=>$sql)); }else{ echo json_encode(array("status"=>500,"msg"=>"图片修改失败","sql"=>$sql)); } } ?>为什么只能实现单张图片上传而不能实现多图片上传
时间: 2024-04-03 11:30:37 浏览: 215
这段PHP代码只能实现单张图片上传,因为它没有实现多文件上传的循环处理。在单张图片上传的情况下,$_FILES['file']只包含一个文件的信息,因此可以直接对这个文件进行处理。而在多文件上传的情况下,$_FILES['file']包含多个文件的信息,需要使用循环来逐个处理每个文件。你需要在代码中增加文件上传的循环处理,例如使用foreach循环来遍历$_FILES['file']数组中的每个文件,然后对每个文件进行类似单文件上传的处理。
相关问题
:8080/#/student_careers:1 Access to XMLHttpRequest at 'http://47.92.142.246:8011/getcount/101?_t=1686277083883' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The value of the 'Access-Control-Allow-Origin' header in the response must not be the wildcard '*' when the request's credentials mode is 'include'. The credentials mode of requests initiated by the XMLHttpRequest is controlled by the withCredentials attribute.
这个错误提示是浏览器的跨域访问限制导致的。浏览器会发送一个预检请求(preflight request)先与目标服务器进行通信,确认服务器是否允许跨域访问。如果服务器返回的响应头中 Access-Control-Allow-Origin 的值为 *,并且请求的 withCredentials 属性为 true(表示带有凭证,如 Cookie 等),那么浏览器就会阻止该请求,因为这被认为是一种潜在的安全漏洞。
解决这个问题的方法是,需要在服务器的响应头中设置 Access-Control-Allow-Origin 的值为具体的域名,而不是 *,例如:
```
Access-Control-Allow-Origin: http://localhost:8080
```
这样就可以允许来自 http://localhost:8080 域名下的请求跨域访问了。如果需要允许多个域名下的请求跨域访问,可以在响应头中设置多个 Access-Control-Allow-Origin 的值,用逗号隔开即可。
nginx配置文件nginx.conf如下:user root D:\network\Video; worker_processes 4; events { worker_connections 204800; } http { include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; keepalive_timeout 65; tcp_nodelay on; gzip on; client_header_buffer_size 4k; server { listen 8000; server_name 127.0.0.1; add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Headers X-Requested-With; add_header Access-Control-Allow-Methods GET,POST,OPTIONS; location / { root D:\network\Video; autoindex on; } } } 运行nginx -p . -c ./nginx.conf时出现: [warn] "user" is not supported, ignored in ./nginx.conf:1 nginx: [emerg] CreateFile() "./mime.types" failed (2: The system cannot find the file specified) in ./nginx.conf:9如何解决
首先,关于 "user" is not supported 的警告,这是因为在 Windows 平台上,nginx 不支持指定用户,所以可以将user root这一行注释掉。
其次,关于"./mime.types" failed的错误,这是因为nginx在启动的时候找不到mime.types文件,可以在http块中添加以下内容来指定mime.types文件的路径:
```
http {
...
include mime.types;
...
}
```
指定mime.types文件的路径可以使用绝对路径或相对路径,如果使用相对路径,则相对于nginx.conf文件的路径。如果mime.types文件不存在,可以在nginx安装目录的conf目录下找到一个mime.types.default文件,将其复制一份并命名为mime.types即可。
经过以上修改后,nginx.conf文件应该如下:
```
#user root D:\network\Video;
worker_processes 4;
events {
worker_connections 204800;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
client_header_buffer_size 4k;
server {
listen 8000;
server_name 127.0.0.1;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
location / {
root D:\network\Video;
autoindex on;
}
}
}
```
阅读全文