c# richtext存入文字+图片至数据库,读取时报文件格式无效错误
//将richtext中文字+图片存入数据库
this.rtbText.SaveFile(mstream, RichTextBoxStreamType.RichText);
mstream.Position = 0;
 SqlCommand cmd = new SqlCommand();
 System.Data.SqlClient.SqlParameter[] pram = new System.Data.SqlClient.SqlParameter[] { };
 cmd.Parameters.AddWithValue("@project_content",mstream.ToArray());
string sql = "insert into project values('" + cbbHospotal.Text + "','" + cbbType.Text + "','@project_content','未确认','待开发','','" + AllStatic.userName + "',getdate(),'','" + label2.Text + "')";
 int i = sl.ExecuteNonQuery(sql,pram,CommandType.Text);

//从数据库读取至richtext
 byte[] bWrite = (byte[])(dt.Rows[0]["project_content"]);

 if (bWrite != null)
 {
 using ( MemoryStream mstream = new MemoryStream())
 {
mstream.Write(bWrite, 0, bWrite.Length);
mstream.Position = 0;
//将stream填充到RichTextBox
this.richTextBox1.LoadFile(mstream, RichTextBoxStreamType.RichText);
                   } }

报错,文件格式无效

c#

1个回答

debug一下,看一下从数据库取出的数据是什么格式的

lc304416870
lc304416870 是 byte类型 ,数据库字段设的是Image
大约 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c# richtext存入文字+图片至数据库,读取时报文件格式无效错误
``` //将richtext中文字+图片存入数据库 this.rtbText.SaveFile(mstream, RichTextBoxStreamType.RichText); mstream.Position = 0; SqlCommand cmd = new SqlCommand(); System.Data.SqlClient.SqlParameter[] pram = new System.Data.SqlClient.SqlParameter[] { }; cmd.Parameters.AddWithValue("@project_content",mstream.ToArray()); string sql = "insert into project values('" + cbbHospotal.Text + "','" + cbbType.Text + "','@project_content','未确认','待开发','','" + AllStatic.userName + "',getdate(),'','" + label2.Text + "')"; int i = sl.ExecuteNonQuery(sql,pram,CommandType.Text); //从数据库读取至richtext byte[] bWrite = (byte[])(dt.Rows[0]["project_content"]); if (bWrite != null) { using ( MemoryStream mstream = new MemoryStream()) { mstream.Write(bWrite, 0, bWrite.Length); mstream.Position = 0; //将stream填充到RichTextBox this.richTextBox1.LoadFile(mstream, RichTextBoxStreamType.RichText); } } ``` 报错,文件格式无效
C#操作OutLook发邮件失败
调用olEMail.Send()报错: 0x80004004,网上查了一下,没解决问题。。。 还有就是email是富文本RichText格式的,添加正文附件的位置怎么调整? 求大神指导,代码块如下: ``` Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application(); Microsoft.Office.Interop.Outlook.NameSpace nSpace = app.GetNamespace("MAPI"); Microsoft.Office.Interop.Outlook.MailItem olEMail = app.CreateItem(Microsoft.Office.Interop.Outlook.OlItemType.olMailItem); Microsoft.Office.Interop.Outlook.Attachments olAttach = olEMail.Attachments; olEMail.To = "Chun.Xiao.Liu@gds.ey.com"; olEMail.Subject = "TestMail"; olEMail.BodyFormat = Microsoft.Office.Interop.Outlook.OlBodyFormat.olFormatRichText; string stext = string.Empty; stext += "Adding A1 one more line"+ System.Environment.NewLine; stext += "Adding A2 one more line"+ System.Environment.NewLine; stext += "Adding A3 one more line"+ System.Environment.NewLine; stext += "Adding A4 one more line"; olEMail.Body = stext; olAttach.Add("C:\\Text\\4.txt", Microsoft.Office.Interop.Outlook.OlAttachmentType.olOLE, stext.IndexOf("A4")); olAttach.Add("C:\\Text\\3.txt", Microsoft.Office.Interop.Outlook.OlAttachmentType.olOLE, stext.IndexOf("A3")); olAttach.Add("C:\\Text\\2.txt", Microsoft.Office.Interop.Outlook.OlAttachmentType.olOLE, stext.IndexOf("A2")); olAttach.Add("C:\\Text\\1.txt", Microsoft.Office.Interop.Outlook.OlAttachmentType.olOLE, stext.IndexOf("A1")); //olEMail.Display(); olEMail.Send(); olEMail = null; app = null; ``` ![就是附件的位置,不好定位](https://img-ask.csdn.net/upload/201905/30/1559192811_462158.png)
Flex Richtext中的文字样式修改
![图片说明](https://img-ask.csdn.net/upload/201506/12/1434092604_280707.png) 我想实现文本框内部分重要文字颜色的修改,请问要怎样去做,或者不使用RichText控件,也能实现上述效果的
node项目运行后提示错误信息ERR_HTTP_INVALID_HEADER_VALUE
我在运行node项目时提示运行错误 ``` D:\hichat>node app.js server on *:3000 _http_outgoing.js:475 throw new ERR_HTTP_INVALID_HEADER_VALUE(value, name); ^ TypeError [ERR_HTTP_INVALID_HEADER_VALUE]: Invalid value "undefined" for header "Content-Type" at storeHeader (_http_outgoing.js:432:5) at processHeader (_http_outgoing.js:427:3) at ServerResponse._storeHeader (_http_outgoing.js:332:11) at ServerResponse.writeHead (_http_server.js:303:8) at D:\hichat\modules\StaticService.js:30:8 at FSReqCallback.readFileAfterClose [as oncomplete] (internal/fs/read_file_context.js:61:3) { code: 'ERR_HTTP_INVALID_HEADER_VALUE' } ``` 网上找了很多,都没有找到相应的方法和出现的原因 ``` StaticService.js var fs = require("fs"),//内部模块 处理文件操作 path =require("path"),//内部模块 处理路径操作 mime =require("./mime").types;//自定义模块请求处理文档类型操作 /** * 404 NOT FOUNT 函数 * @param {[type]} res [请求对象] */ function send404(res){ res.writeHead(404,{"Content-Type":"text/plain"}); res.end("404 not found"); } /** * 静态文件请求函数 * @param {[type]} realpath [绝对路径] * @param {[type]} res [服务器请求对象] */ function staticServer(realpath,res){ fs.readFile(realpath,function(err,data){ if(!err){ var extname=path.extname(realpath); res.writeHead(200,{"Content-Type":mime[extname]}); //这行报错 res.end(data); }else{ send404(res); } }); } /** * 静态服务器主入口模块 * @param {[type]} pathname [请求路径名称] * @param {[type]} res [请求对象] * @param {[type]} base_dir [根目录] */ exports.staticRender=function(pathname,res,base_dir){ var reg = /^\/static|upload/;//目录匹配 if(reg.test(pathname)){ fs.exists(path.join(base_dir,pathname),function(exists){ if(exists){ staticServer(path.join(base_dir,pathname),res) }else{ send404(res); } }) }else{ send404(res); } } ``` ``` /** * title hichat聊天室 文件mime类型对象 */ exports.types = { '.hqx':'application/mac-binhex40', '.cpt':'application/mac-compactpro', '.csv':['text/x-comma-separated-values', 'text/comma-separated-values', 'application/octet-stream', 'application/vnd.ms-excel', 'application/x-csv', 'text/x-csv', 'text/csv', 'application/csv', 'application/excel', 'application/vnd.msexcel'], '.bin':'application/macbinary', '.dms':'application/octet-stream', '.lha':'application/octet-stream', '.lzh':'application/octet-stream', '.exe':['application/octet-stream', 'application/x-msdownload'], '.class':'application/octet-stream', '.psd':'application/x-photoshop', '.so':'application/octet-stream', '.sea':'application/octet-stream', '.dll':'application/octet-stream', '.oda':'application/oda', '.pdf':['application/pdf', 'application/x-download'], '.ai':'application/postscript', '.eps':'application/postscript', '.ps':'application/postscript', '.smi':'application/smil', '.smil':'application/smil', '.mif':'application/vnd.mif', '.xls':['application/excel', 'application/vnd.ms-excel', 'application/msexcel'], '.ppt':['application/powerpoint', 'application/vnd.ms-powerpoint'], '.wbxml':'application/wbxml', '.wmlc':'application/wmlc', '.dcr':'application/x-director', '.dir':'application/x-director', '.dxr':'application/x-director', '.dvi':'application/x-dvi', '.gtar':'application/x-gtar', '.gz':'application/x-gzip', '.php':'application/x-httpd-php', '.php4':'application/x-httpd-php', '.php3':'application/x-httpd-php', '.phtml':'application/x-httpd-php', '.phps':'application/x-httpd-php-source', '.js':'application/x-javascript', '.swf':'application/x-shockwave-flash', '.sit':'application/x-stuffit', '.tar':'application/x-tar', '.tgz':['application/x-tar', 'application/x-gzip-compressed'], '.xhtml':'application/xhtml+xml', '.xht':'application/xhtml+xml', '.zip':['application/x-zip', 'application/zip', 'application/x-zip-compressed'], '.mid':'audio/midi', '.midi':'audio/midi', '.mpga':'audio/mpeg', '.mp2':'audio/mpeg', '.mp3':['audio/mpeg', 'audio/mpg', 'audio/mpeg3', 'audio/mp3'], '.aif':'audio/x-aiff', '.aiff':'audio/x-aiff', '.aifc':'audio/x-aiff', '.ram':'audio/x-pn-realaudio', '.rm':'audio/x-pn-realaudio', '.rpm':'audio/x-pn-realaudio-plugin', '.ra':'audio/x-realaudio', '.rv':'video/vnd.rn-realvideo', '.wav':['audio/x-wav', 'audio/wave', 'audio/wav'], '.bmp':['image/bmp', 'image/x-windows-bmp'], '.gif':'image/gif', '.jpeg':['image/jpeg', 'image/pjpeg'], '.jpg':['image/jpeg', 'image/pjpeg'], '.jpe':['image/jpeg', 'image/pjpeg'], '.png':['image/png', 'image/x-png'], '.tiff':'image/tiff', '.tif':'image/tiff', '.css':'text/css', '.html':'text/html', '.htm':'text/html', '.shtml':'text/html', '.txt':'text/plain', '.text':'text/plain', '.log':['text/plain', 'text/x-log'], '.rtx':'text/richtext', '.rtf':'text/rtf', '.xml':'text/xml', '.xsl':'text/xml', '.mpeg':'video/mpeg', '.mpg':'video/mpeg', '.mpe':'video/mpeg', '.qt':'video/quicktime', '.mov':'video/quicktime', '.avi':'video/x-msvideo', '.movie':'video/x-sgi-movie', '.doc':'application/msword', '.docx':['application/vnd.openxmlformats-officedocument.wordprocessingml.document', 'application/zip'], '.xlsx':['application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/zip'], '.word':['application/msword', 'application/octet-stream'], '.xl':'application/excel', '.eml':'message/rfc822', '.json':['application/json', 'text/json'] }; ```
关于聊天系统具体实现的问题
要做一个手游的聊天系统,美术用cocostudio做出了UI 输入框是一个textfield, 显示信息区域是scrollview,我的问题是 textfield可以实现光标吗? 而且为什么 textfield的触摸有时会无效,lua可以设置相应触摸区域大小吗? 收到的信息用什么东西来展示,label吗? label可以实现字体的大小,颜色设置吗? 我要展示图片和链接,用什么好呢? 听说richText可以,richText怎么用?求教
关于使用poi获取修并修改ppt内容的问题
为什么获取的ppt内容只能修改一次呢?遍历出所有内容修改,报异常 同一个ppt页修改两次 还报异常 代码: SlideShow sss=new SlideShow(new HSLFSlideShow("F:\\11123.ppt"));//"" 内为文件的InputStream,建立SlideShow 2003 Slide[] siles=sss.getSlides();//获得每一张幻灯片 int counts=0; for(int i=0;i<siles.length;i++){ //为了取得幻灯片的文字内容,建立TextRun TextRun[] text=siles[i].getTextRuns(); for (int j = 0; j < text.length; j++){ RichTextRun[] richText=text[j].getRichTextRuns(); System.out.println(text.length); System.out.println(richText.length); System.out.println(counts++); System.out.println(richText[0].getText()); for(RichTextRun rt:richText) { System.out.println(text.length); System.out.println(counts++); System.out.println(rt.getText());//报异常java.lang.StringIndexOutOfBoundsException:String index out of range: 109 rt.setText(rt.getText().replace("#kssj#" , "2015年6月5日14:00时")); } } } FileOutputStream output=new FileOutputStream("F:\\11123yyy.ppt"); sss.write(output); output.close(); 更多 0
在MFC透明窗口(layer window)中,如何设定光标?
先概述一下,现在做一个项目,需要用一个windowless richedit 做一个文本框,然后实现文本框的编辑功能。由于某种原因,我需要将文本框的窗口设定为透明的。这样,就面对了一个问题,就是要在编辑状态下实现透明窗口光标的显示(以及其他功能,暂且不述),因为编辑状态如果连光标都无法显示编辑就无从谈起。现在所面对的问题是,我无法在透明窗口上显示光标。 下面详细的说一下问题的程序建立的步骤,我分析问题更多与透明窗口有关系,而与windowless richedit的关系不大,所以windowless richedit的建立和销毁等叙述会比较简单: 1 先建立一个MFC的对话框类,在该对话框类的构造函数中,获得windowless richedit中的ITextHost、ITextServices和ITextDocument指针。 2 在对话框的OnInitDialog()中,完成下列功能: (1) 设定窗口layer属性,设定的代码如下: SetWindowLong(this->m_hWnd, GWL_EXSTYLE, GetWindowLong(this->m_hWnd, GWL_EXSTYLE) | WS_EX_LAYERED | WS_EX_TOPMOST | WS_EX_TOOLWINDOW | WS_EX_NOACTIVATE); 通过上面的语句,将对话框窗口设定成了layer窗口。实现了透明效果。 (2)为windowless richedit添加文字。代码不表了。 3 在重绘函数OnPaint()中,用UpdateLayeredWindow将文本框的内容显示出来。步骤如下: (1) 建立一个32位的bitmap位图,然后将其数据全部清零。(从而alpha值也为零了) (2) 通过上面建立的bitmap位图,建立一个和对话框dc相兼容的hdc。 (3) 调用windowless richedit的绘制函数将文本框内容绘制到兼容hdc中。 (4) 用UpdateLayeredWindow函数将本文框框内容绘制到当前的对话框窗口中。 这段代码后面会给出。 4 在对话框中重写了virtual LRESULT WindowProc(UINT message, WPARAM wParam, LPARAM lParam);函数,目的是为了在对话框中,自己处理一些消息。处理的代码如下: if ( (WM_MOUSEFIRST <= message && message <= WM_MOUSELAST) || (message == WM_SETFOCUS)) { CreateSolidCaret (100, 100); SetCaretPos (CPoint(120,60)); ShowCaret(); //delete pBitmap; return CDialog::WindowProc(message, wParam,lParam); } else return CDialog::WindowProc(message, wParam,lParam); 代码写的不太好,就是测试代码,这个代码完成的功能是:如果是与鼠标相关的消息或者是激活消息。则通过MFC封装函数建立光标,设定光标位置 并显示出来。 5 完成了以上几步后,我认为光标就应该在希望的位置显示了,然而遗憾的是,没有显示出来。但是在下面两种情况下,就可以显示。 1 不在将对话框设定为layer属性,也就是说,采用普通窗口,然后在调用windowless richedit框的绘制函数中,直接传入对话框的hdc,这时候,就可以正确的显示设定的光标。 2 如果在对话框的OnInitDialog()中,在指定windows的layer属性之后,添加 SetLayeredWindowAttributes(cKey.ToCOLORREF(), 150, LWA_ALPHA);这个语句,则可以显示光标。当然,参数不是唯一的,而且也不一定非得alpha模式,color key模式也可以显示光标。比如:SetLayeredWindowAttributes(cKey.ToCOLORREF(), 150, LWA_COLORKEY); 现在的疑问是:为什么不指定layer窗口,或者用SetLayeredWindowAttributes规范一下透明窗口,就可以将光标显示出来了?为什么用UpdateLayeredWindow就无法显示呢? 现在给出用UpdateLayeredWindow显示文本的代码。 void CRichDrawExampleDlg::OnPaintRectLayer(RectF& invalidateRect,CDC& dc ) { CRect rct; ::GetWindowRect( m_hWnd, &rct ); BITMAPINFOHEADER bmih; ZeroMemory( &bmih, sizeof( BITMAPINFOHEADER ) ); bmih.biSize = sizeof( BITMAPINFOHEADER ); bmih.biWidth = rct.Width(); bmih.biHeight = - rct.Height(); bmih.biPlanes = 1 ; bmih.biBitCount = 32;//这里一定要是 bmih.biCompression = BI_RGB; bmih.biSizeImage = 0 ; bmih.biXPelsPerMeter = 0 ; bmih.biYPelsPerMeter = 0 ; bmih.biClrUsed = 0 ; bmih.biClrImportant = 0 ; int iBPP = GetDeviceCaps(dc.GetSafeHdc(), BITSPIXEL ); HDC hdcMemory1 = CreateCompatibleDC( dc.GetSafeHdc()); BYTE *dst = NULL; HBITMAP hBitMap1 = CreateDIBSection(dc.GetSafeHdc(),( BITMAPINFO* )&bmih, DIB_RGB_COLORS, ( VOID** )&dst, NULL, 0 ); memset( dst, 0, rct.Height() * rct.Width() * 4 ); SelectObject( hdcMemory1, hBitMap1 ); CRect rect = RectFToCRect(invalidateRect); m_RichText.DrawText(hdcMemory1,rect,this); //if( iBPP != 32 ) { HDC hdcMemory2 = CreateCompatibleDC( dc.GetSafeHdc() ); BYTE *dstW = NULL; HBITMAP hBitMap2 = CreateDIBSection( dc.GetSafeHdc(), ( BITMAPINFO* )&bmih, DIB_RGB_COLORS, ( VOID** )&dstW, NULL, 0 ); memset( dstW, 254, rct.Height() * rct.Width() * 4 ); SelectObject( hdcMemory2, hBitMap2 ); m_RichText.DrawText(hdcMemory2,rect,this); BYTE r, g, b, a, rw, gw, bw, aw, alpha_r, alpha_g, alpha_b, alpha; for (int y = 0; y < rct.Height() ; y++) { for (int x = 0; x < rct.Width(); x++) { //the idea is that we draw the same data onto black and white DC's //and then calculate per pixel alpha based on difference, produced by alpha blending r = *dst++; g = *dst++; b = *dst++; a = *dst++; rw = *dstW++; gw = *dstW++; bw = *dstW++; aw = *dstW++; alpha_r = rw-r; alpha_g = gw-g; alpha_b = bw-b; //division by 3 is for accuracy and can be replaced by //alpha = alpha_g; for example alpha = (alpha_r + alpha_g + alpha_b) / 3; *(dst - 1) = 255 - alpha; //this algorithm should be optimized for MMX to achieve best performance } } DeleteObject( hBitMap2 ); DeleteDC( hdcMemory2 ); } //for (int i = 0 ; i < rct.Height(); ++i) //{ // for (int j = 0; j < rct.Width(); ++j) // { // if (0 != *(dst + i * 4 * rct.Height() + 4 * j) || 0 != *(dst + i * 4 * rct.Height() + 4 * j + 1) || 0 != *(dst + i * 4 * rct.Height() + 4 * j + 2)) // { // *(dst + i * 4 * rct.Height() + 4 * j + 3) = 200; // } // } //} BLENDFUNCTION oBlend; oBlend.BlendOp = 0; //theonlyBlendOpdefinedinWindows2000 oBlend.BlendFlags = 0; //nothingelseisspecial... oBlend.SourceConstantAlpha = 255;//0~255//AC_SRC_ALPHA oBlend.AlphaFormat = 1; //... POINT ptSrc = { 0, 0 }; POINT ptWinPos = { rct.left, rct.top }; SIZE sizeWindow = { rct.Width(), rct.Height() }; ::UpdateLayeredWindow( m_hWnd, dc.GetSafeHdc(), &ptWinPos, &sizeWindow, hdcMemory1, &ptSrc, RGB( 0,0,0 ), &oBlend, ULW_ALPHA ); DeleteObject( hBitMap1 ); DeleteDC( hdcMemory1 ); } 谢谢您的查看!希望大家能帮一下,目前很困惑。
qt-x11编译时遇到一个错误,还请大神帮忙解答
.obj/release-shared/q3richtext_p.o: file not recognized: File truncated collect2: ld 返回 1 make[1]: *** [../../lib/libQt3Support.so.4.5.3] 错误 1 make[1]:正在离开目录 `/opt/qt-x11-4.5.3/src/qt3support' make: *** [sub-qt3support-make_default-ordered] 错误 2
PHPExcel中独立字体块$objRichText设置字体不起作用
$objPHPExcel = new PHPExcel(); $objPHPExcel->getActiveSheet()->getDefaultStyle()->getFont()->setSize(11)->setName('UTF-8'); $objPHPExcel->getActiveSheet()->setTitle('sheet1'); $sheet = $objPHPExcel->setActiveSheetIndex(0); $objRichText = new PHPExcel_RichText(); $objRichText->createText(''); $objPayable = $objRichText->createTextRun('红色字体'); $objPayable->getFont()->setColor(new PHPExcel_Style_Color(PHPExcel_Style_Color::COLOR_RED )); $sheet->setCellValue('E6', '后面是红色字体:'.$objRichText); 上面是我的代码。 结果是objPayable中的文字能显示,但是给他加的任何字体效果都不能显示。 百思不得解了,求助
创建索引问题:为什么我的rake ts:index无法执行
为什么运行了git clone git://github.com/freelancing-god/thinking-sphinx.git vendor/plugins/thinking_sphinx安装了 thinking_sphinx还是无法执行ts:index呢 总是报: [quote]D:\zsb>rake thinking_sphinx:index INDEX_ONLY=true (in D:/zsb) rake aborted! Could not find RubyGem rails (>= 0.0.0) D:/zsb/rakefile:4 (See full trace by running task with --trace)[/quote] 我的rakefile文件如下 [quote]# Add your own tasks in files placed in lib/tasks ending in .rake, # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. require(File.join(File.dirname(__FILE__), 'config', 'boot')) require 'rake' require 'rake/testtask' require 'rake/rdoctask' require 'thinking_sphinx' require 'thinking_sphinx/tasks' require 'tasks/rails'[/quote] 我的参考文章为http://www.iteye.com/topic/431217 [b]问题补充:[/b] 太失败了 没装rails 装了之后执行 出现下面的问题 D:\zsb>rake thinking_sphinx:index (in D:/zsb) rake aborted! no such file to load -- thinking_sphinx D:/zsb/rakefile:10 (See full trace by running task with --trace) 我已经吧thinking_sphinx安装到vendor\plugins了啊 [b]问题补充:[/b] 非常不错 要关门了 明天结贴啊 呵呵 :idea: [b]问题补充:[/b] 非常感谢 再请教一个问题,好像是:config的问题 [quote]D:\zsb>rake thinking_sphinx:index --trace (in D:/zsb) ** Invoke thinking_sphinx:index (first_time) ** Invoke thinking_sphinx:app_env (first_time) ** Execute thinking_sphinx:app_env ** Invoke environment (first_time) ** Execute environment rake aborted! can't convert Hash into String c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:300:in `match' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:300:in `parse' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:238:in `initialize' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:237:in `collect' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:237:in `initialize' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:29:in `new' c:/ruby/lib/ruby/site_ruby/1.8/rubygems/version.rb:29:in `initialize' c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:234:in `new' c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:234:in `activate' c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:76:in `active_gem_with_options' c:/ruby/lib/ruby/site_ruby/1.8/rubygems.rb:50:in `gem' D:/zsb/config/../config/environment.rb:69 c:/ruby/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_re quire'[/quote] 我的gem配置: [quote] # Be sure to restart your web server when you modify this file. # Uncomment below to force Rails into production mode when # you don't control web/app server and can't set it the proper way # ENV['RAILS_ENV'] ||= 'production' # Specifies gem version of Rails to use when vendor/rails is not present #RAILS_GEM_VERSION = '1.2.5' unless defined? RAILS_GEM_VERSION # Bootstrap the Rails environment, frameworks, and default configuration require File.join(File.dirname(__FILE__), 'boot') Rails::Initializer.run do |config| # Settings in config/environments/* take precedence over those specified here # Skip frameworks you're not going to use (only works if using vendor/rails) # config.frameworks -= [ :action_web_service, :action_mailer ] # Only load the plugins named here, by default all plugins in vendor/plugins are loaded # config.plugins = %W( exception_notification ssl_requirement ) # Add additional load paths for your own custom dirs # config.load_paths += %W( #{RAILS_ROOT}/extras ) # Force all environments to use the same logger level # (by default production uses :info, the others :debug) # config.log_level = :debug # Use the database for sessions instead of the file system # (create the session table with 'rake db:sessions:create') # config.action_controller.session_store = :active_record_store config.action_controller.perform_caching = true # Use SQL instead of Active Record's schema dumper when creating the test database. # This is necessary if your schema can't be completely dumped by the schema dumper, # like if you have constraints or database-specific column types # config.active_record.schema_format = :sql # Activate observers that should always be running # config.active_record.observers = :cacher, :garbage_collector # Make Active Record use UTC-base instead of local time # config.active_record.default_timezone = :utc # Add new inflection rules using the following format # (all these examples are active by default): # Inflector.inflections do |inflect| # inflect.plural /^(ox)$/i, '\1en' # inflect.singular /^(ox)en/i, '\1' # inflect.irregular 'person', 'people' # inflect.uncountable %w( fish sheep ) # end # See Rails::Configuration for more options #确保一个汉字占一个字符 require 'jcode' $KCODE = 'u' end # Add new mime types for use in respond_to blocks: # Mime::Type.register "text/richtext", :rtf # Mime::Type.register "application/x-mobile", :mobile # Include your application configuration below #Time::DATA_FORMATS[:due_time]="%B %d on %I:%M %P" RAILS_DEFAULT_LOGGER = Logger.new("#{RAILS_ROOT}/log/#{RAILS_ENV}.log", "daily") :config.gem( 'freelancing-god-thinking-sphinx', :lib => 'thinking_sphinx', :version => '1.2.0' ) quote] [b]问题补充:[/b] thinking sphinx的gem已经安装了 下面这个是在environment.rb中的配置 [quote]:config.gem( 'freelancing-god-thinking-sphinx', :lib => 'thinking_sphinx', :version => '1.2.0' ) [/quote] 在使用th:index的命令时候还是报错 can't convert Hash into String
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
作为程序员的我,大学四年一直自学,全靠这些实用工具和学习网站!
我本人因为高中沉迷于爱情,导致学业荒废,后来高考,毫无疑问进入了一所普普通通的大学,实在惭愧...... 我又是那么好强,现在学历不行,没办法改变的事情了,所以,进入大学开始,我就下定决心,一定要让自己掌握更多的技能,尤其选择了计算机这个行业,一定要多学习技术。 在进入大学学习不久后,我就认清了一个现实:我这个大学的整体教学质量和学习风气,真的一言难尽,懂的人自然知道怎么回事? 怎么办?我该如何更好的提升
新来个技术总监,禁止我们使用Lombok!
我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。 但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用Lombok。但是又没给出十分明确的,可以让人信服的理由。 于...
前端JS初级面试题二 (。•ˇ‸ˇ•。)老铁们!快来瞧瞧自己都会了么
1. 传统事件绑定和符合W3C标准的事件绑定有什么区别? 传统事件绑定 &lt;div onclick=""&gt;123&lt;/div&gt; div1.onclick = function(){}; &lt;button onmouseover=""&gt;&lt;/button&gt; 注意: 如果给同一个元素绑定了两次或多次相同类型的事件,那么后面的绑定会覆盖前面的绑定 (不支持DOM事...
2020金三银四,一篇文章教你如何征服面试官,拿到offer
2020年,跳槽面试就靠它们了,现在每天刷题,看源码文档,最近看的这些题目还是有些难度,有一部分我都要好好想一想才能回答出来,或者回答不出来,总的来说知识宽度够了深度还跟不上。所以要重点突破下底层的东西。这篇文章我总结了很久,希望对正在准备面试的同仁们有点帮助。没错我就是传说中的面霸!! 一. 面试准备 首先,是笔试题,这点是初级程序员绕不过去的坎。 笔试题一般的公司都会出的,除非你是大牛,可以选...
用Python开发实用程序 – 计算器
作者:隋顺意 一段时间前,自己制作了一个库 “sui-math”。这其实是math的翻版。做完后,python既然可以轻易的完成任何的数学计算,何不用python开发一个小程序专门用以计算呢? 现在我们越来越依赖于计算器,很多复杂的计算都离不开它。我们使用过各式各样的计算器,无论是电脑自带的,还是网也上的计算器,却都没有自己动手编写属于自己计算器。今天就让我们走进计算器的世界,用python来编写...
Python学习笔记(语法篇)
本篇博客大部分内容摘自埃里克·马瑟斯所著的《Python编程:从入门到实战》(入门类书籍),采用举例的方式进行知识点提要 关于Python学习书籍推荐文章 《学习Python必备的8本书》 Python语法特点: 通过缩进进行语句组织 不需要变量或参数的声明 冒号 1 变量和简单数据结构 1.1 变量命名 只能包含字母、数字和下划线,且不能以数字打头。 1.2 字符串 在Python中,用引号...
小白也会用的情人节表白神器
鉴于情人节女朋友总说直男,上网找了个模板,改了一下,发现效果还不错。然后又录了一个视频,发现凑合,能用。现在免费分享给程序员,去表白去吧。​​​​​​。当然比较low因为考研没时间优化,懒着优化了。 先看一下效果吧:页面太多了,这里我只放几个页面里面有音乐,还凑合不是太单调。 所有页面最后的合成效果: 接下来教大家如何使用: 新建文件夹:love 然后建立这几个...
论如何用python发qq消息轰炸虐狗好友
因为我的某个好友在情人节的时候秀恩爱,所以我灵光一闪制作了qq消息轰炸并记录了下来。 首先 我的编程环境是: windows 10系统 python3.6 记得要下载win32 pip install win32 思路介绍 其实也非常简单 将要发出去的句子储存在列表中 然后用随机模块调用 将随机出来的元素储存在剪贴板中 连接QQ 找到指定对象 疯狂输出 怎么样,简单吧 开始打代码吧 imp...
Python爬取冠状病毒“谣言”新闻进行数据分析
一、前言 今天给大家介绍的爬虫项目是爬取冠状病毒谣言数据,因为最近网络上有很多关于冠状病毒的谣言,官方也积极的出来辟谣,作为一名数据爱好者,我也想尽自己一份微薄之力,分享一些有用的数据分享,希望大家在特殊情况下能明辨是非,保护好自己和家人! 二、爬取数据 话不多说了,直接上代码( copy即可用 ) import requests import pandas as pd class Sp...
情人节闲着无聊写个python程序
用python在图片上写字 ''' 依赖,需要安装Pillow pip install Pillow ''' from PIL import Image, ImageDraw, ImageFont import sys #判断参数个数,可以不要 import os #判断文件是否存在,可以不要 image_path = "1.jpg" font_path = "SIMLI.TTF" tex...
相关热词 c# 压缩图片好麻烦 c#计算数组中的平均值 c#获取路由参数 c#日期精确到分钟 c#自定义异常必须继承 c#查表并返回值 c# 动态 表达式树 c# 监控方法耗时 c# listbox c#chart显示滚动条
立即提问