php上传文件不改文件名(php上传大文件失败)

  • 1、php上传文件后名字变了,如何让文件名不变,上传成功后能否获取文件链接?
  • 2、用PHP上传实现只上传图片并保持原文件名
  • 3、求php相册程序,要求上传后不改变文件名
  • 4、php上传文件
  • 5、[php教程]php上传文件胜利后如何自动改变文件名?
  • 6、PHP上传图片,并以原文件名保存!

function uploadify(){

$targetFolder = ‘/uploads/’;

$verifyToken = md5(‘unique_salt’ . $_POST[‘timestamp’]);

if (!empty($_FILES) $_POST[‘token’] == $verifyToken) {

$tempFile = $_FILES[‘Filedata’][‘tmp_name’];

$targetPath = $targetFolder;

$savePath=$targetFolder.$_FILES[‘Filedata’][‘name’];

$targetFile = rtrim($targetPath,’/’) . ‘/’ . $_FILES[‘Filedata’][‘name’];

$fileTypes = array(‘aac’,’flac’,’mar’,’wma’,’mp3′,’ape’,’ogg’);

$fileParts = pathinfo($_FILES[‘Filedata’][‘name’]);

if (in_array($fileParts[‘extension’],$fileTypes)) {

move_uploaded_file($tempFile,iconv(“UTF-8″,”gb2312”, $targetFile));

echo $savePath;

}

else

{

echo ‘Invalid file type.’;

}

}

}

这个iconv(“UTF-8″,”gb2312”, $targetFile)保持中文不被乱码或者中文上传不了问题。

$face=$_FILES[‘face’];

if($face[‘size’]0){

    echo ‘上传文件为空’;

    exit;

}

//判断文件格式

$arr=array(‘jpg’,’png’,’gif’)

$arrs=explode(‘.’,$face[‘name’]);

$ext=$arrs[count($arrs)-1];

if(!in_array($ext,$arr)){

    echo ‘文件格式错误!’;

    exit;

}

//判断上传大小

if($face[‘size’]307200){

    echo ‘文件大小已超出限制范围!’;

    exit;

}

$dir=’faces’;//文件上传目录

$upload=copy($face[‘tmp_name’],$dir.’/’.$face[‘name’]);

if($upload=false){

    echo ‘文件上传失败!’;

    exit;

}

应该要改文件名的,别人是这样写的,首先是改了你图片的名字,记录下相片的原名字,这两个名字是分开存入数据库。

记住,路径中有中文名字,是不可以显示的。程序会报错。

根据你的程序,重新写了一套,你自己看一下吧,后面都有相关的标注,会加深印象,你原程序那个$filename是程序原本的文件名,没得到的话,真让我感觉匪夷所思……不管了,重写一个吧,你给的信息也太少了,到底怎么回事也没弄明白。

哦哦,忽然想到一种可能啊,你好好检查一下你的数据库字段,看看是不是char 类型,或text,或varcharf都可以,别是其它不支持的类型哦,这点很重要,不然我这套程序,依旧你也写不进去!!!

?php

include “conn.php”;

mysql_select_db(“mydb”);

if(is_uploaded_file|$_FILES[‘Filedata’][‘tmp_name’]){ //这一句是用来判断是否有文件上传来的。如果有的放,才执行下面的内容;

$Filedata = $_FILES[“Filedata”];

$name = $Filedata[‘name’]; //真实的文件名字是这个,而不是tmp_name, 要知道,tmp_name是临时文件名,是php系统临时分配的文件名,只起到一个短时间中转的作用。而这个才是真正的文件名(确切地说,应该是上传时原文件名。上传后,这个文件名是可以随意更改的。)但是在我这套程序中,好像没用到它哦。

$type = $Filedata[‘type’]; //这些和上面下面都是一样,都是$_FILES[]这个系统变量自动生成的一系列参数。这个是文件类型;

$size = $Filedata[‘size’]; //这个是文件大小,以字节为单位;

$tmp_name = $Filedata[‘tmp_name’]; //这个是临时文件名,看到了吧,重点就在这里,进行移动的时候这个会用到哦。

$error = $Filedata[‘error’]; //这个是上传中是否有什么错误,如果有错误的话,会返回错误,没有是false;

////////////////////////////////////////////

//

//===========以下是对文件进行服务器端验证,做好相关工作的话,可在一定程度上防止被传木马

//

/////////////////////////////////////////////

if($size=30000){

exit(‘您上传的文件大小超过限定’);

}

switch($type){ //这里我用图片文件进行说明,如果你的是其它文件的话,也可以按这个方法进行处理。

case ‘image/pjpeg’ : $nameback=’.jpg’; //jpeg

break;

case ‘image/jpeg’ : $nameback=’.jpg’; //jpg

break;

case ‘image/gif’ : $nameback=’.gif’; //gif

break;

case ‘image/png’ : $nameback=’.png’; //png

break;

case ‘image/bmp’ : $nameback=’.bmp’; //bmp

break;

case exit(‘类型犯规!’);

} //switch end

///////////////////////////////////////////

//

//以下是对文件进行上传后处理,包括更改文件名、写入数据库。(当然还可以加入判断是否有重复文件等,这里就不做实例了。)

//

///////////////////////////////////////////

if($nameback $error==0){

$filename=’UF_’ . date(“Ymdhs”) . $nameback; //新文件名的命名规则中间的是时间,就是这一步,可以在一定程序上防止被恶意上传;

$fileplace=’uploads/’ . $filename; //上传后要修改的文件(包括目录)

$fileroot=’uploads/’; //上传后文件放置目录;

file_put_contents(“catcah.txt”,$tmp_name); //存放临时文件名

move_uploaded_file($tmp_name, $fileplace); //注意,这里放的是包括目录和文件名的变量哦,并且在这个过程中,上传的文件名也更改啦。

$username = mysql_real_escape_string($_POST[‘username’]);

$query =@mysql_query( “INSERT INTO `$username`(`fname`,`file`)VALUES(‘$filename’,’$uploadfile’)”)or die(“error”);

}//last if end

}//upload and writefile end(the first if end)

?

不过看你的另一个字段已经写进去了,好像不应该是数据库的问题,也许是$_FILES[‘Filedata’][“name”]根本就没有取到值?,你不妨在那里echo一下,看看是不是有取到,要学会如何调试哦,调式能力可以考验一个phper水准的重要项目啊。

copy($HTTP_POST_FILES[‘photo’][‘tmp_name’],$path.”/”.$filename);这是我uploadsave.php里的一句用copy()上传第2个参数就是文件名 自己定义一个就行了.

代码实在太长,就不细细看了。

$_FILES[“upfile”][tmp_name]是临时文件名称,$_FILES[“upfile”][name]是原文件名称;

你也不给你错误提示。只能凭空判断了。

1、文件保存路径错误,文件夹不存在。

2、图片重新创建的过程中存在错误。

3、编码问题。

解决:

先把重新创建图片的过程给去掉,直接转移试试,如果可以,那就是你图片创建的问题了。

另外:imagecreatefromwbmp这个函数貌似不存在。

原创文章,作者:GTFXH,如若转载,请注明出处:https://www.506064.com/n/126808.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
GTFXH的头像GTFXH
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相关推荐

  • 关于java中按钮事件1的信息

    本文目录一览: 1、Java给按钮添加事件 2、Java 添加按钮点击事件 3、java按钮事件 4、java怎么给按钮添加事件 5、java 按钮事件 Java给按钮添加事件 赞…

    编程 2024-10-03
  • HTML插入图片的几种方式

    一、HTML怎么导入图片 图片是网页设计中必不可少的元素。可以通过HTML导入本地图片或网络图片。 二、HTML怎么添加图片代码 在HTML中,可以通过标签来添加图片。在HTML文…

    编程 2024-10-24
  • str.split()函数解析

    一、概述 JavaScript中的字符串(String)是不可变的,也就是说,一旦创建,就无法更改其内容。因此,为了处理字符串,JavaScript提供了一系列的内置方法。其中之一…

    编程 2024-11-24
  • js数组最后一个元素的多方面阐述

    一、js数组最后一个元素变为第一个 将js数组中的最后一个元素放到数组开头,即变为第一个元素,代码示例如下: let arr = [1, 2, 3, 4, 5]; let last…

    编程 2024-10-04
  • Python Numbers: 从基础知识到数据处理的必备工具

    作为一门优秀的编程语言,Python在数据处理上有着广泛的应用。对于处理数字数据来说,Python有着许多强大的工具和库,为数据分析和可视化提供了丰富的支持。 一、数字类型及其操作…

    编程 2024-11-24
  • dbeaver设置主键详解

    在关系型数据库中,主键是唯一标识一条记录的一个属性或一组属性,是表的基本组成部分。在dbeaver中,我们可以通过多种方式来设置主键。 一、通过图形界面设置主键 在dbeaver中…

    编程 2024-10-03
  • chrome如何加载js,chrome如何加载插件

    本文目录一览: 1、chrome 怎么获取js文件 2、chrome 如何调试js 3、如何使用 Chrome 浏览器调试动态加载的 Javascript 脚本 4、如何在谷歌浏览…

    编程 2024-12-09
  • 能看到其中的php源代码吗,php源代码是

    本文目录一览: 1、如何查看php页面的源代码 2、.php得到源文件后在那里看源代码 3、查看网页源代码还能看到PHP的源码吗 4、怎样查看一个网页的php源代码 5、在打开.p…

    编程 2024-11-17
  • 使用HTML代码制作爱心图案,简单易学

    HTML是一个用于创建网页和其他Web应用程序的标准语言。它由一系列的标签组成,这些标签告诉浏览器如何呈现出网页的内容。在本文中,我们将学习如何使用HTML代码制作一个简单却令人心…

    编程 2024-12-02
  • 利用craco轻松优化React应用的配置

    React是一个流行的JavaScript库,用于构建交互式用户界面。随着React应用程序的增长和复杂性,确保性能和可维护性变得越来越重要。React应用程序的配置是一项很困难的…

    编程 2024-11-28

发表回复

登录后才能评论