我已经使用 MySQL 一段时间了,但直到最近我才达到上传文件的需要。这是场景:我有一个使用 .NET 连接器运行的 C# 控制台应用程序,我需要它来允许用户上传 PDF 文件,并将其插入到特定表中,并带有外键。
所以,在定义了Command的连接之后,就变成了这样:
command.CommandText = "INSERT INTO targetTable (ForeignKey,file) VALUES (@key, @arq);";
MySqlParameter FKParam = new MySqlParameter("@key", MySqlDbType.Int32,3);
FKParam.Value = _value; //Received as a function parameter
MySqlParameter fileParam new MySqlParameter("@arq", MySqlDbType.Blob,bytes.length);
FKParam.Value = bytes; //is the name of the variable which holds the readed bytes from a file.
command.Parameters.Add(FKParam);
command.Parameters.Add(fileParam);
command.ExecuteNonQuery();
这段代码完美地工作......除了它没有。我的意思是,创建了一个新行,但文件列为空。
这是表结构:
mysql> show columns from targetTable ;
+---------------------+--------------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+-------------------+-----------------------------+
| targetTableID | int(3) | NO | PRI | NULL | auto_increment |
| ForeignKey | int(3) | YES | | NULL | |
| file | mediumblob | YES | | NULL | |
+---------------------+--------------+------+-----+-------------------+-----------------------------+
3 rows in set (0.00 sec)