这边提供几个公共方法:MD5签名方法、获取时间戳、生成随机串、string转base64、base64转string

目录

 

1、MD5签名方法

 2、获取时间戳,时间戳从1970年1月1日00:00:00至今的秒数,即当前的时间

3、生成随机串

4、string转base64

5、base64转string


1、MD5签名方法

 /// <summary>
        /// MD5签名方法  
        /// </summary>  
        /// <param name="inputText">加密参数</param>  
        /// <returns></returns>  
        private static string MD5(string inputText)
        {
            MD5 md5 = new MD5CryptoServiceProvider();
            byte[] fromData = System.Text.Encoding.UTF8.GetBytes(inputText);
            byte[] targetData = md5.ComputeHash(fromData);
            string byte2String = null;

            for (int i = 0; i < targetData.Length; i++)
            {
                byte2String += targetData[i].ToString("x2");
            }
            return byte2String;
        }

 2、获取时间戳,时间戳从1970年1月1日00:00:00至今的秒数,即当前的时间

   private long getTime()
        {
            TimeSpan cha = (DateTime.Now - TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)));
            long t = (long)cha.TotalMilliseconds;
            return t;
        }

3、生成随机串

  private static string GetRandomString(int length)
        {
            const string key = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789";
            if (length < 1)
                return string.Empty;

            Random rnd = new Random();
            byte[] buffer = new byte[8];

            ulong bit = 31;
            ulong result = 0;
            int index = 0;
            StringBuilder sb = new StringBuilder((length / 5 + 1) * 5);

            while (sb.Length < length)
            {
                rnd.NextBytes(buffer);

                buffer[5] = buffer[6] = buffer[7] = 0x00;
                result = BitConverter.ToUInt64(buffer, 0);

                while (result > 0 && sb.Length < length)
                {
                    index = (int)(bit & result);
                    sb.Append(key[index]);
                    result = result >> 5;
                }
            }
            return sb.ToString();
        }

4、string转base64

  public string ToBase64Str(string Str)
        {
            byte[] b = System.Text.Encoding.Default.GetBytes(Str);
            return Convert.ToBase64String(b);

        }

5、base64转string

   public string ToStrBase64(string a)
        {
            byte[] c = Convert.FromBase64String(a);
            a = System.Text.Encoding.UTF8.GetString(c);
            return a;
        }

 

 

在ThinkPHP5框架中,将Base64编码的图片换为二进制数据并上传到服务器通常涉及以下几个步骤: 1. **解码Base64**: 首先,你需要从用户提交的数据中提取Base64编码的图片字符。这通常是通过`$_POST`或`$_GET`变量获取。然后使用PHP内置的`base64_decode`函数将其解码为字节流。 ```php $base64String = $_POST['image']; $decodedImage = base64_decode($base64String); ``` 2. **创建临时文件**: 将解码后的字节流保存到一个临时文件,以便后续处理。你可以使用`tempnam`或`file_put_contents`函数创建临时文件。 ```php $uploadDir = 'path/to/upload/directory'; $tempFile = tempnam($uploadDir, 'temp_'); file_put_contents($tempFile, $decodedImage); ``` 3. **设置文件名和路径**: 你可能需要给上传的文件命名,并设置完整的服务器路径。如果文件名已经存在,你可能需要加上时间或其他后缀避免冲突。 ```php $filename = 'new_image.jpg'; // 用户指定或自动生成 $finalPath = $uploadDir . '/' . $filename; rename($tempFile, $finalPath); ``` 4. **验证和存储**: 在实际生产环境中,别忘了检查文件是否上传成功,大小是否超过限制,以及类型是否安全。你可以使用`move_uploaded_file`或者`copy`函数将文件移动到最终目的地。 5. **删除临时文件**: 上传成功后,记得删除临时文件,以释放系统资源。 ```php unlink($tempFile); ``` 如果你需要在控制器或模型中执行这个操作,你可以封装这些步骤为一个方法,方便复用。下面是大致的代码示例: ```php class UploadController extends Controller { public function handleBase64ImageUpload(Request $request) { // ... (上面的代码) if (move_uploaded_file($tempFile, $finalPath)) { echo "上传成功"; } else { echo "上传失败"; } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值